llvm-project/libcxx/test/std/utilities/optional/optional.object
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
..
optional.object.assign [libcxx][optional] adds missing constexpr operations 2021-06-10 05:52:47 +00:00
optional.object.ctor [libcxx][optional] adds missing constexpr operations 2021-06-10 05:52:47 +00:00
optional.object.dtor [libcxx][optional] adds missing constexpr operations 2021-06-10 05:52:47 +00:00
optional.object.mod [libcxx][optional] adds missing constexpr operations 2021-06-10 05:52:47 +00:00
optional.object.observe [libc++] Move handling of the target triple to the DSL 2021-05-08 11:10:53 -04:00
optional.object.swap [libcxx][optional] adds missing constexpr operations 2021-06-10 05:52:47 +00:00
optional_requires_destructible_object.fail.cpp [libc++] Remove the c++98 Lit feature from the test suite 2020-06-03 09:37:22 -04:00
special_members.pass.cpp [libc++] Remove the c++98 Lit feature from the test suite 2020-06-03 09:37:22 -04:00
triviality.pass.cpp [libc++] Remove the c++98 Lit feature from the test suite 2020-06-03 09:37:22 -04:00
types.pass.cpp [libc++] Remove the c++98 Lit feature from the test suite 2020-06-03 09:37:22 -04:00