diff options
Diffstat (limited to 'test/std/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op+/difference_type.pass.cpp')
-rw-r--r-- | test/std/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op+/difference_type.pass.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/test/std/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op+/difference_type.pass.cpp b/test/std/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op+/difference_type.pass.cpp index 39129d6b64d8..0c9682f45c1c 100644 --- a/test/std/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op+/difference_type.pass.cpp +++ b/test/std/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op+/difference_type.pass.cpp @@ -12,11 +12,14 @@ // reverse_iterator // requires RandomAccessIterator<Iter> -// reverse_iterator operator+(difference_type n) const; +// constexpr reverse_iterator operator+(difference_type n) const; +// +// constexpr in c++17 #include <iterator> #include <cassert> +#include "test_macros.h" #include "test_iterators.h" template <class It> @@ -33,4 +36,17 @@ int main() const char* s = "1234567890"; test(random_access_iterator<const char*>(s+5), 5, random_access_iterator<const char*>(s)); test(s+5, 5, s); + +#if TEST_STD_VER > 14 + { + constexpr const char *p = "123456789"; + typedef std::reverse_iterator<const char *> RI; + constexpr RI it1 = std::make_reverse_iterator(p); + constexpr RI it2 = std::make_reverse_iterator(p + 5); + constexpr RI it3 = it2 + 5; + static_assert(it1 != it2, ""); + static_assert(it1 == it3, ""); + static_assert(it2 != it3, ""); + } +#endif } |