]> git.ipfire.org Git - thirdparty/gcc.git/commit
libstdc++: Implement P2968R2 "Making std::ignore a first-class object"
authorJonathan Wakely <jwakely@redhat.com>
Thu, 25 Jul 2024 12:00:09 +0000 (13:00 +0100)
committerThomas Koenig <tkoenig@gcc.gnu.org>
Sun, 28 Jul 2024 17:05:58 +0000 (19:05 +0200)
commit69270c7452ce570a28e57840a350021c2b85fdd3
treefacfa756e4604b5b92a730348d07c68b72cbd321
parent8fbee909fd8516a18e3677e837bda190ed9dccf7
libstdc++: Implement P2968R2 "Making std::ignore a first-class object"

This was recently approved for C++26, but we can apply the changes for
all modes back to C++11. There's no reason not to make the assignment
usable in constant expressions for C++11 mode, and noexcept for all
modes.

Move the definitions to <bits/utility.h> so they're available in
<utility> as well as <tuple>.

libstdc++-v3/ChangeLog:

* include/bits/utility.h (_Swallow_assign): Make assignment
constexpr for C++11 as well, and add noexcept.
* include/std/tuple (_Swallow_assign, ignore): Move to
bits/utility.h.
* testsuite/20_util/headers/utility/ignore.cc: New test.
libstdc++-v3/include/bits/utility.h
libstdc++-v3/include/std/tuple
libstdc++-v3/testsuite/20_util/headers/utility/ignore.cc [new file with mode: 0644]