summaryrefslogtreecommitdiffstats
path: root/libcxx/test/std/experimental/optional/optional.object/optional.object.assign/move.pass.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libcxx/test/std/experimental/optional/optional.object/optional.object.assign/move.pass.cpp')
-rw-r--r--libcxx/test/std/experimental/optional/optional.object/optional.object.assign/move.pass.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/libcxx/test/std/experimental/optional/optional.object/optional.object.assign/move.pass.cpp b/libcxx/test/std/experimental/optional/optional.object/optional.object.assign/move.pass.cpp
index fa00f5602c7..1c3b780677e 100644
--- a/libcxx/test/std/experimental/optional/optional.object/optional.object.assign/move.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.object/optional.object.assign/move.pass.cpp
@@ -21,6 +21,13 @@
using std::experimental::optional;
+struct AllowConstAssign {
+ AllowConstAssign(AllowConstAssign const&) {}
+ AllowConstAssign const& operator=(AllowConstAssign const&) const {
+ return *this;
+ }
+};
+
struct X
{
static bool throw_now;
@@ -77,6 +84,11 @@ int main()
assert(*opt == *opt2);
}
{
+ optional<const AllowConstAssign> opt;
+ optional<const AllowConstAssign> opt2;
+ opt = std::move(opt2);
+ }
+ {
static_assert(!std::is_nothrow_move_assignable<optional<X>>::value, "");
optional<X> opt;
optional<X> opt2(X{});
OpenPOWER on IntegriCloud