diff --git a/libcxx/test/std/containers/views/span.cons/deduct.pass.cpp b/libcxx/test/std/containers/views/span.cons/deduct.pass.cpp --- a/libcxx/test/std/containers/views/span.cons/deduct.pass.cpp +++ b/libcxx/test/std/containers/views/span.cons/deduct.pass.cpp @@ -28,60 +28,61 @@ #include -#include #include #include +#include #include -#include #include "test_macros.h" -// std::array is explicitly allowed to be initialized with A a = { init-list };. -// Disable the missing braces warning for this reason. -#include "disable_missing_braces_warning.h" - int main(int, char**) { { int arr[] = {1,2,3}; std::span s{arr}; - using S = decltype(s); - ASSERT_SAME_TYPE(S, std::span); - assert((std::equal(std::begin(arr), std::end(arr), s.begin(), s.end()))); + ASSERT_SAME_TYPE(decltype(s), std::span); + assert(s.size() == std::size(arr)); + assert(s.data() == std::data(arr)); + } + + { + const int arr[] = {1,2,3}; + std::span s{arr}; + ASSERT_SAME_TYPE(decltype(s), std::span); + assert(s.size() == std::size(arr)); + assert(s.data() == std::data(arr)); } { std::array arr = {1.0, 2.0, 3.0, 4.0}; std::span s{arr}; - using S = decltype(s); - ASSERT_SAME_TYPE(S, std::span); - assert((std::equal(std::begin(arr), std::end(arr), s.begin(), s.end()))); + ASSERT_SAME_TYPE(decltype(s), std::span); + assert(s.size() == arr.size()); + assert(s.data() == arr.data()); } { const std::array arr = {4, 5, 6, 7, 8}; std::span s{arr}; - using S = decltype(s); - ASSERT_SAME_TYPE(S, std::span); - assert((std::equal(std::begin(arr), std::end(arr), s.begin(), s.end()))); + ASSERT_SAME_TYPE(decltype(s), std::span); + assert(s.size() == arr.size()); + assert(s.data() == arr.data()); } { std::string str{"ABCDE"}; std::span s{str}; - using S = decltype(s); - ASSERT_SAME_TYPE(S, std::span); - assert((size_t)s.size() == str.size()); - assert((std::equal(s.begin(), s.end(), std::begin(s), std::end(s)))); + ASSERT_SAME_TYPE(decltype(s), std::span); + assert(s.size() == str.size()); + assert(s.data() == str.data()); } { const std::string str{"QWERTYUIOP"}; std::span s{str}; - using S = decltype(s); - ASSERT_SAME_TYPE(S, std::span); - assert((size_t)s.size() == str.size()); - assert((std::equal(s.begin(), s.end(), std::begin(s), std::end(s)))); + ASSERT_SAME_TYPE(decltype(s), std::span); + assert(s.size() == str.size()); + assert(s.data() == str.data()); } return 0;