]> git.ipfire.org Git - thirdparty/gcc.git/commit
libstdc++: Define std::expected for C++23 (P0323R12)
authorJonathan Wakely <jwakely@redhat.com>
Thu, 24 Mar 2022 20:37:13 +0000 (20:37 +0000)
committerJonathan Wakely <jwakely@redhat.com>
Sun, 27 Mar 2022 17:50:31 +0000 (18:50 +0100)
commitb78e0ce28b32a1b89886219c557506aeae6caffc
tree8c5b093cdb25333a6b26608b418a38dd8033b82f
parentd2906412ada87a4bdd6410060bc18a2c53c419b7
libstdc++: Define std::expected for C++23 (P0323R12)

Because this adds a new class template called std::unexpected, we have
to stop declaring the std::unexpected() function (which was deprecated
in C++11 and removed in C++17).

libstdc++-v3/ChangeLog:

* doc/doxygen/user.cfg.in: Add new header.
* include/Makefile.am: Likewise.
* include/Makefile.in: Regenerate.
* include/precompiled/stdc++.h: Add new header.
* include/std/version (__cpp_lib_expected): Define.
* libsupc++/exception [__cplusplus > 202002] (unexpected)
(unexpected_handler, set_unexpected): Do not declare for C++23.
* include/std/expected: New file.
* testsuite/20_util/expected/assign.cc: New test.
* testsuite/20_util/expected/cons.cc: New test.
* testsuite/20_util/expected/illformed_neg.cc: New test.
* testsuite/20_util/expected/observers.cc: New test.
* testsuite/20_util/expected/requirements.cc: New test.
* testsuite/20_util/expected/swap.cc: New test.
* testsuite/20_util/expected/synopsis.cc: New test.
* testsuite/20_util/expected/unexpected.cc: New test.
* testsuite/20_util/expected/version.cc: New test.
16 files changed:
libstdc++-v3/doc/doxygen/user.cfg.in
libstdc++-v3/include/Makefile.am
libstdc++-v3/include/Makefile.in
libstdc++-v3/include/precompiled/stdc++.h
libstdc++-v3/include/std/expected [new file with mode: 0644]
libstdc++-v3/include/std/version
libstdc++-v3/libsupc++/exception
libstdc++-v3/testsuite/20_util/expected/assign.cc [new file with mode: 0644]
libstdc++-v3/testsuite/20_util/expected/cons.cc [new file with mode: 0644]
libstdc++-v3/testsuite/20_util/expected/illformed_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/20_util/expected/observers.cc [new file with mode: 0644]
libstdc++-v3/testsuite/20_util/expected/requirements.cc [new file with mode: 0644]
libstdc++-v3/testsuite/20_util/expected/swap.cc [new file with mode: 0644]
libstdc++-v3/testsuite/20_util/expected/synopsis.cc [new file with mode: 0644]
libstdc++-v3/testsuite/20_util/expected/unexpected.cc [new file with mode: 0644]
libstdc++-v3/testsuite/20_util/expected/version.cc [new file with mode: 0644]