]> gcc.gnu.org Git - gcc.git/commit
libstdc++: Disable volatile-qualified std::bind for C++20
authorJonathan Wakely <jwakely@redhat.com>
Wed, 28 Sep 2022 11:39:41 +0000 (12:39 +0100)
committerJonathan Wakely <jwakely@redhat.com>
Wed, 28 Sep 2022 23:33:46 +0000 (00:33 +0100)
commitd01f112de4a54db6d2abef836e6dff3a08167389
tree5a8668807517fa6ecb79e7c9d68bc53c18863d6c
parentfa9bda3ea4315a7285edbc99323e3fa7885cbbb8
libstdc++: Disable volatile-qualified std::bind for C++20

LWG 2487 added a precondition to std::bind for C++17, making
volatile-qualified uses undefined. We still support it, but with a
deprecated warning.

P1065R2 made it explicitly ill-formed for C++20, so we should no longer
accept it as deprecated. This implements that change.

libstdc++-v3/ChangeLog:

* doc/xml/manual/evolution.xml: Document std::bind API
changes.
* doc/xml/manual/intro.xml: Document LWG 2487 status.
* doc/xml/manual/using.xml: Clarify default value of
_GLIBCXX_USE_DEPRECATED.
* doc/html/*: Regenerate.
* include/std/functional (_Bind::operator()(Args&&...) volatile)
(_Bind::operator()(Args&&...) const volatile)
(_Bind_result::operator()(Args&&...) volatile)
(_Bind_result::operator()(Args&&...) const volatile): Replace
with deleted overload for C++20 and later.
* testsuite/20_util/bind/cv_quals.cc: Check for deprecated
warnings in C++17.
* testsuite/20_util/bind/cv_quals_2.cc: Likewise, and check for
ill-formed in C++20.
13 files changed:
libstdc++-v3/doc/html/index.html
libstdc++-v3/doc/html/manual/api.html
libstdc++-v3/doc/html/manual/appendix.html
libstdc++-v3/doc/html/manual/appendix_porting.html
libstdc++-v3/doc/html/manual/bugs.html
libstdc++-v3/doc/html/manual/index.html
libstdc++-v3/doc/html/manual/using_macros.html
libstdc++-v3/doc/xml/manual/evolution.xml
libstdc++-v3/doc/xml/manual/intro.xml
libstdc++-v3/doc/xml/manual/using.xml
libstdc++-v3/include/std/functional
libstdc++-v3/testsuite/20_util/bind/cv_quals.cc
libstdc++-v3/testsuite/20_util/bind/cv_quals_2.cc
This page took 0.064663 seconds and 6 git commands to generate.