summaryrefslogtreecommitdiffstats
path: root/libcxx/test/std/utilities/optional/optional.object
diff options
context:
space:
mode:
authorMarshall Clow <mclow.lists@gmail.com>2017-05-17 15:30:01 +0000
committerMarshall Clow <mclow.lists@gmail.com>2017-05-17 15:30:01 +0000
commitc1bcd4c1f280e40d25dada5573e1a51de69a991a (patch)
treefc904e5d37ac5e1c052d570e21175a706e6963ac /libcxx/test/std/utilities/optional/optional.object
parent6dc120a41d01d49398a28d96a833d5f31d339146 (diff)
downloadbcm5719-llvm-c1bcd4c1f280e40d25dada5573e1a51de69a991a.tar.gz
bcm5719-llvm-c1bcd4c1f280e40d25dada5573e1a51de69a991a.zip
Mark the copy constructor and move
constructor to be constexpr. This only works when the contained type has a constexpr copy/move ctor. llvm-svn: 303268
Diffstat (limited to 'libcxx/test/std/utilities/optional/optional.object')
-rw-r--r--libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/copy.pass.cpp7
-rw-r--r--libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/move.pass.cpp7
2 files changed, 12 insertions, 2 deletions
diff --git a/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/copy.pass.cpp b/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/copy.pass.cpp
index 5906d4edd11..76c1fb82b86 100644
--- a/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/copy.pass.cpp
+++ b/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/copy.pass.cpp
@@ -10,7 +10,7 @@
// UNSUPPORTED: c++98, c++03, c++11, c++14
// <optional>
-// optional(const optional<T>& rhs);
+// constexpr optional(const optional<T>& rhs);
#include <optional>
#include <type_traits>
@@ -152,4 +152,9 @@ int main()
{
test_reference_extension();
}
+ {
+ constexpr std::optional<int> o1{4};
+ constexpr std::optional<int> o2 = o1;
+ static_assert( *o2 == 4, "" );
+ }
}
diff --git a/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/move.pass.cpp b/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/move.pass.cpp
index 9f23e9b4381..09aaa0561b5 100644
--- a/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/move.pass.cpp
+++ b/libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/move.pass.cpp
@@ -18,7 +18,7 @@
// <optional>
-// optional(optional<T>&& rhs);
+// constexpr optional(optional<T>&& rhs);
#include <optional>
#include <type_traits>
@@ -206,4 +206,9 @@ int main()
{
test_reference_extension();
}
+ {
+ constexpr std::optional<int> o1{4};
+ constexpr std::optional<int> o2 = std::move(o1);
+ static_assert( *o2 == 4, "" );
+ }
}
OpenPOWER on IntegriCloud