[libc++][spaceship] Implement `operator<=>` for `optional`
authorHristo Hristov <zingam@outlook.com>
Fri, 28 Apr 2023 20:52:07 +0000 (23:52 +0300)
committerHristo Hristov <zingam@outlook.com>
Fri, 5 May 2023 06:59:22 +0000 (09:59 +0300)
commit03cda77409023e64d6338dcb4e36bf1e40b33ea3
treed54550ee0f98d051d014b77e9db75720b849385e
parenta08cbabb28e5e5f27ce802e1b26ba273a071a0f3
[libc++][spaceship] Implement `operator<=>` for `optional`

Implements parts of **P1614R2**: https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1614r2.html

- Implemented `operator<=>` for `optional`
- Updated "optional synopsis" to match the current draft https://eel.is/c++draft/optional closer
- Implemented https://cplusplus.github.io/LWG/issue3566
- Implemented https://cplusplus.github.io/LWG/issue3746

Reviewed By: #libc, philnik, ldionne

Differential Revision: https://reviews.llvm.org/D146392
libcxx/docs/Status/Cxx2bIssues.csv
libcxx/docs/Status/SpaceshipProjects.csv
libcxx/include/optional
libcxx/test/std/utilities/optional/optional.comp_with_t/compare.three_way.pass.cpp [new file with mode: 0644]
libcxx/test/std/utilities/optional/optional.nullops/compare.three_way.pass.cpp [new file with mode: 0644]
libcxx/test/std/utilities/optional/optional.relops/compare.three_way.pass.cpp [new file with mode: 0644]