| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| |
|
| |
|
| | #include <span> |
| | #include <algorithm> |
| | #include <array> |
| | #include <cassert> |
| | #include <string> |
| | #include <type_traits> |
| |
|
| | #include "test_macros.h" |
| |
|
| | |
| | |
| | #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<int, 3>); |
| | assert((std::equal(std::begin(arr), std::end(arr), s.begin(), s.end()))); |
| | } |
| |
|
| | { |
| | std::array<double, 4> arr = {1.0, 2.0, 3.0, 4.0}; |
| | std::span s{arr}; |
| | using S = decltype(s); |
| | ASSERT_SAME_TYPE(S, std::span<double, 4>); |
| | assert((std::equal(std::begin(arr), std::end(arr), s.begin(), s.end()))); |
| | } |
| |
|
| | { |
| | const std::array<long, 5> arr = {4, 5, 6, 7, 8}; |
| | std::span s{arr}; |
| | using S = decltype(s); |
| | ASSERT_SAME_TYPE(S, std::span<const long, 5>); |
| | assert((std::equal(std::begin(arr), std::end(arr), s.begin(), s.end()))); |
| | } |
| |
|
| | { |
| | std::string str{"ABCDE"}; |
| | std::span s{str}; |
| | using S = decltype(s); |
| | ASSERT_SAME_TYPE(S, std::span<char>); |
| | assert((size_t)s.size() == str.size()); |
| | assert((std::equal(s.begin(), s.end(), std::begin(s), std::end(s)))); |
| | } |
| |
|
| | { |
| | const std::string str{"QWERTYUIOP"}; |
| | std::span s{str}; |
| | using S = decltype(s); |
| | ASSERT_SAME_TYPE(S, std::span<const char>); |
| | assert((size_t)s.size() == str.size()); |
| | assert((std::equal(s.begin(), s.end(), std::begin(s), std::end(s)))); |
| | } |
| |
|
| | return 0; |
| | } |
| |
|