diff --git a/libcxx/test/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.incr/post.pass.cpp b/libcxx/test/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.incr/post.pass.cpp --- a/libcxx/test/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.incr/post.pass.cpp +++ b/libcxx/test/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.incr/post.pass.cpp @@ -16,10 +16,22 @@ #include #include +#include #include "test_macros.h" #include "test_iterators.h" +#if TEST_STD_VER > 17 +template +void +test_single_pass(It i, It x) +{ + std::move_iterator r(std::move(i)); + r++; + assert(std::move(r).base() == x); +} +#endif + template void test(It i, It x) @@ -33,7 +45,11 @@ int main(int, char**) { char s[] = "123"; +#if TEST_STD_VER > 17 + test_single_pass(input_iterator(s), input_iterator(s+1)); +#else test(input_iterator(s), input_iterator(s+1)); +#endif test(forward_iterator(s), forward_iterator(s+1)); test(bidirectional_iterator(s), bidirectional_iterator(s+1)); test(random_access_iterator(s), random_access_iterator(s+1)); @@ -52,5 +68,5 @@ } #endif - return 0; + return 0; } diff --git a/libcxx/test/std/iterators/predef.iterators/move.iterators/move.iterator/types.pass.cpp b/libcxx/test/std/iterators/predef.iterators/move.iterators/move.iterator/types.pass.cpp --- a/libcxx/test/std/iterators/predef.iterators/move.iterators/move.iterator/types.pass.cpp +++ b/libcxx/test/std/iterators/predef.iterators/move.iterators/move.iterator/types.pass.cpp @@ -30,11 +30,13 @@ template struct DummyIt { - typedef std::forward_iterator_tag iterator_category; - typedef ValueType value_type; - typedef std::ptrdiff_t difference_type; - typedef ValueType* pointer; - typedef Reference reference; + typedef std::forward_iterator_tag iterator_category; + typedef ValueType value_type; + typedef std::ptrdiff_t difference_type; + typedef ValueType* pointer; + typedef Reference reference; + + Reference operator*() const; }; template @@ -92,5 +94,5 @@ } #endif - return 0; + return 0; }