]> git.ipfire.org Git - thirdparty/gcc.git/commit
libstdc++: Add poison pill for chrono::from_stream
authorJonathan Wakely <jwakely@redhat.com>
Thu, 6 Mar 2025 20:23:29 +0000 (20:23 +0000)
committerJonathan Wakely <redi@gcc.gnu.org>
Fri, 7 Mar 2025 20:36:23 +0000 (20:36 +0000)
commit4b180459626df64dac758da8760d868c2604ddf2
tree8331e2dec09950b69c4fa82f5ae60fbc86e61458
parentb191e8bdecf881d11c1544c441e38f4c18392a15
libstdc++: Add poison pill for chrono::from_stream

LWG 3956 (approved in Hagenberg, February 2025) decided that from_stream
should be found *only* by ADL, not ordinary unqualified lookup. Add a
poison pill overload to chrono::__detail where the __parsable concept
and operator>>(basic_istream&, _Parser) are defined. This ensures that
when they use from_stream unqualified ordinary lookup finds the poison
pill, which is deleted, so a usable overload resolution result can only
be found by ADL.

We already have the std/time/parse/parse.cc test checking that ADL
works, so this doesn't add a new test.

libstdc++-v3/ChangeLog:

* include/bits/chrono_io.h (chrono::__detail::from_stream): Add
deleted function as poison pill for unqualified lookup.

Reviewed-by: Patrick Palka <ppalka@redhat.com>
libstdc++-v3/include/bits/chrono_io.h