summaryrefslogtreecommitdiffstats
path: root/libcxx/test/std/experimental/optional/optional.object/optional.object.assign/assign_value.pass.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libcxx/test/std/experimental/optional/optional.object/optional.object.assign/assign_value.pass.cpp')
-rw-r--r--libcxx/test/std/experimental/optional/optional.object/optional.object.assign/assign_value.pass.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/libcxx/test/std/experimental/optional/optional.object/optional.object.assign/assign_value.pass.cpp b/libcxx/test/std/experimental/optional/optional.object/optional.object.assign/assign_value.pass.cpp
index 3d0d2e03158..27aafe0df6b 100644
--- a/libcxx/test/std/experimental/optional/optional.object/optional.object.assign/assign_value.pass.cpp
+++ b/libcxx/test/std/experimental/optional/optional.object/optional.object.assign/assign_value.pass.cpp
@@ -19,6 +19,14 @@
using std::experimental::optional;
+struct AllowConstAssign {
+ AllowConstAssign() = default;
+ AllowConstAssign(AllowConstAssign const&) {}
+ AllowConstAssign const& operator=(AllowConstAssign const&) const {
+ return *this;
+ }
+};
+
struct X
{
};
@@ -53,6 +61,11 @@ int main()
assert(*opt == i);
}
{
+ optional<const AllowConstAssign> opt;
+ const AllowConstAssign other;
+ opt = other;
+ }
+ {
optional<std::unique_ptr<int>> opt;
opt = std::unique_ptr<int>(new int(3));
assert(static_cast<bool>(opt) == true);
OpenPOWER on IntegriCloud