llvm-project/libcxx/test/std/utilities/optional/optional.object/optional.object.assign
Christopher Di Bella 546449938a [libcxx][optional] adds missing constexpr operations
Makes the following operations constexpr:
  * `std::swap(optional, optional)`
  * `optional(optional<U> const&)`
  * `optional(optional<U>&&)`
  * `~optional()`
  * `operator=(nullopt_t)`
  * `operator=(U&&)`
  * `operator=(optional<U> const&)`
  * `operator=(optional<U>&&)`
  * `emplace(Args&&...)`
  * `emplace(initializer_list<U>, Args&&...)`
  * `swap(optional&)`
  * `reset()`

P2231 has been accepted by plenary, with the committee recommending
implementers retroactively apply to C++20. It's necessary for us to
implement _`semiregular-box`_ and _`non-propagating-cache`_, both of
which are required for ranges (otherwise we'll need to reimplement
`std::optional` with these members `constexpr`ified).

Differential Revision: https://reviews.llvm.org/D102119
2021-06-10 05:52:47 +00:00
..
assign_value.pass.cpp [libc++] NFC: Normalize links to bug reports 2021-03-03 13:45:29 -05:00
const_optional_U.pass.cpp [libc++] Remove the c++98 Lit feature from the test suite 2020-06-03 09:37:22 -04:00
copy.pass.cpp [libc++] Remove the c++98 Lit feature from the test suite 2020-06-03 09:37:22 -04:00
emplace.pass.cpp [libcxx][optional] adds missing constexpr operations 2021-06-10 05:52:47 +00:00
emplace_initializer_list.pass.cpp [libcxx][optional] adds missing constexpr operations 2021-06-10 05:52:47 +00:00
move.pass.cpp [libc++] Remove the c++98 Lit feature from the test suite 2020-06-03 09:37:22 -04:00
nullopt_t.pass.cpp [libcxx][optional] adds missing constexpr operations 2021-06-10 05:52:47 +00:00
optional_U.pass.cpp [libcxx][optional] adds missing constexpr operations 2021-06-10 05:52:47 +00:00