diff options
author | Marshall Clow <mclow.lists@gmail.com> | 2017-05-17 15:30:01 +0000 |
---|---|---|
committer | Marshall Clow <mclow.lists@gmail.com> | 2017-05-17 15:30:01 +0000 |
commit | c1bcd4c1f280e40d25dada5573e1a51de69a991a (patch) | |
tree | fc904e5d37ac5e1c052d570e21175a706e6963ac /libcxx/test/std/utilities/optional/optional.object | |
parent | 6dc120a41d01d49398a28d96a833d5f31d339146 (diff) | |
download | bcm5719-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.cpp | 7 | ||||
-rw-r--r-- | libcxx/test/std/utilities/optional/optional.object/optional.object.ctor/move.pass.cpp | 7 |
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, "" ); + } } |