llvm-project/libcxx/test/std/utilities/optional
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.bad_optional_access [libc++] Move handling of the target triple to the DSL 2021-05-08 11:10:53 -04:00
optional.comp_with_t [libc++] Remove the c++98 Lit feature from the test suite 2020-06-03 09:37:22 -04:00
optional.hash [libc++] Remove the c++98 Lit feature from the test suite 2020-06-03 09:37:22 -04:00
optional.nullops [libc++] Remove the c++98 Lit feature from the test suite 2020-06-03 09:37:22 -04:00
optional.nullopt [libc++] Remove the c++98 Lit feature from the test suite 2020-06-03 09:37:22 -04:00
optional.object [libcxx][optional] adds missing constexpr operations 2021-06-10 05:52:47 +00:00
optional.relops [libc++] Remove the c++98 Lit feature from the test suite 2020-06-03 09:37:22 -04:00
optional.specalg [libc++] Move handling of the target triple to the DSL 2021-05-08 11:10:53 -04:00
optional.syn [libc++] Remove the c++98 Lit feature from the test suite 2020-06-03 09:37:22 -04:00
iterator_concept_conformance.compile.pass.cpp [libcxx] Reenable ranges for clang-cl 2021-05-01 11:15:38 +03:00