|
37 | 37 | #include "test_macros.h" |
38 | 38 |
|
39 | 39 | template <typename S, typename Iter> |
40 | | -void testIterator() |
41 | | -{ |
42 | | - typedef std::iterator_traits<Iter> ItT; |
43 | | - |
44 | | - ASSERT_SAME_TYPE(typename ItT::iterator_category, std::random_access_iterator_tag); |
45 | | - ASSERT_SAME_TYPE(typename ItT::value_type, typename S::value_type); |
46 | | - ASSERT_SAME_TYPE(typename ItT::reference, typename S::reference); |
47 | | - ASSERT_SAME_TYPE(typename ItT::pointer, typename S::pointer); |
48 | | - ASSERT_SAME_TYPE(typename ItT::difference_type, typename S::difference_type); |
| 40 | +void testIterator() { |
| 41 | + typedef std::iterator_traits<Iter> ItT; |
| 42 | + |
| 43 | + ASSERT_SAME_TYPE(typename ItT::iterator_category, std::random_access_iterator_tag); |
| 44 | + ASSERT_SAME_TYPE(typename ItT::value_type, typename S::value_type); |
| 45 | + ASSERT_SAME_TYPE(typename ItT::reference, typename S::reference); |
| 46 | + ASSERT_SAME_TYPE(typename ItT::pointer, typename S::pointer); |
| 47 | + ASSERT_SAME_TYPE(typename ItT::difference_type, typename S::difference_type); |
49 | 48 | } |
50 | 49 |
|
51 | 50 | template <typename S, typename ElementType, std::size_t Size> |
52 | | -void testSpan() |
53 | | -{ |
54 | | - ASSERT_SAME_TYPE(typename S::element_type, ElementType); |
55 | | - ASSERT_SAME_TYPE(typename S::value_type, std::remove_cv_t<ElementType>); |
56 | | - ASSERT_SAME_TYPE(typename S::size_type, std::size_t); |
57 | | - ASSERT_SAME_TYPE(typename S::difference_type, std::ptrdiff_t); |
58 | | - ASSERT_SAME_TYPE(typename S::pointer, ElementType *); |
59 | | - ASSERT_SAME_TYPE(typename S::const_pointer, const ElementType *); |
60 | | - ASSERT_SAME_TYPE(typename S::reference, ElementType &); |
61 | | - ASSERT_SAME_TYPE(typename S::const_reference, const ElementType &); |
62 | | - |
63 | | - static_assert(S::extent == Size); // check that it exists |
64 | | - |
65 | | - testIterator<S, typename S::iterator>(); |
66 | | - testIterator<S, typename S::reverse_iterator>(); |
| 51 | +void testSpan() { |
| 52 | + ASSERT_SAME_TYPE(typename S::element_type, ElementType); |
| 53 | + ASSERT_SAME_TYPE(typename S::value_type, std::remove_cv_t<ElementType>); |
| 54 | + ASSERT_SAME_TYPE(typename S::size_type, std::size_t); |
| 55 | + ASSERT_SAME_TYPE(typename S::difference_type, std::ptrdiff_t); |
| 56 | + ASSERT_SAME_TYPE(typename S::pointer, ElementType*); |
| 57 | + ASSERT_SAME_TYPE(typename S::const_pointer, const ElementType*); |
| 58 | + ASSERT_SAME_TYPE(typename S::reference, ElementType&); |
| 59 | + ASSERT_SAME_TYPE(typename S::const_reference, const ElementType&); |
| 60 | + |
| 61 | + static_assert(S::extent == Size); // check that it exists |
| 62 | + |
| 63 | + testIterator<S, typename S::iterator>(); |
| 64 | + testIterator<S, typename S::reverse_iterator>(); |
67 | 65 | } |
68 | 66 |
|
69 | 67 | template <typename T> |
|
0 commit comments