summaryrefslogtreecommitdiffstats
path: root/test/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op=/move_iterator.pass.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op=/move_iterator.pass.cpp')
-rw-r--r--test/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op=/move_iterator.pass.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/test/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op=/move_iterator.pass.cpp b/test/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op=/move_iterator.pass.cpp
index 449f7e809..30a95c367 100644
--- a/test/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op=/move_iterator.pass.cpp
+++ b/test/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op=/move_iterator.pass.cpp
@@ -15,10 +15,13 @@
// requires HasAssign<Iter, const U&>
// move_iterator&
// operator=(const move_iterator<U>& u);
+//
+// constexpr in C++17
#include <iterator>
#include <cassert>
+#include "test_macros.h"
#include "test_iterators.h"
template <class It, class U>
@@ -44,4 +47,14 @@ int main()
test<bidirectional_iterator<Base*> >(bidirectional_iterator<Derived*>(&d));
test<random_access_iterator<const Base*> >(random_access_iterator<Derived*>(&d));
test<Base*>(&d);
+#if TEST_STD_VER > 14
+ {
+ using BaseIter = std::move_iterator<const Base *>;
+ using DerivedIter = std::move_iterator<const Derived *>;
+ constexpr const Derived *p = nullptr;
+ constexpr DerivedIter it1 = std::make_move_iterator(p);
+ constexpr BaseIter it2 = (BaseIter{nullptr} = it1);
+ static_assert(it2.base() == p, "");
+ }
+#endif
}