]> git.ipfire.org Git - thirdparty/gcc.git/commit
libstdc++: sstream from string_view (P2495R3) [PR119741]
authorNathan Myers <ncm@cantrip.org>
Wed, 4 Jun 2025 18:52:29 +0000 (14:52 -0400)
committerNathan Myers <ncm@cantrip.org>
Mon, 9 Jun 2025 05:28:34 +0000 (01:28 -0400)
commit845826088c942f7df2ad6fbfe4cb976f83abcd16
treeb7798779ce7ea23749de84fbf54069a58b5eb17d
parentcdfa5fe03512f7ac5a293480f634df68fc973060
libstdc++: sstream from string_view (P2495R3) [PR119741]

Add constructors to stringbuf, stringstream, istringstream, and ostringstream,
and a matching overload of str(sv) in each, that take anything convertible to
a string_view in places where the existing ctors and function take a string.
Note this change omits the constraint applied to the istringstream constructor
from string cited as a "drive-by" in P2495R3, as we have determined it is
redundant.

libstdc++-v3/ChangeLog:

PR libstdc++/119741
* include/std/sstream: full implementation, really just
decls, requires clause and plumbing.
* include/bits/version.def, include/bits/version.h:
new preprocessor symbol
__cpp_lib_sstream_from_string_view.
* testsuite/27_io/basic_stringbuf/cons/char/string_view.cc:
New tests.
* testsuite/27_io/basic_istringstream/cons/char/string_view.cc:
New tests.
* testsuite/27_io/basic_ostringstream/cons/char/string_view.cc:
New tests.
* testsuite/27_io/basic_stringstream/cons/char/string_view.cc:
New tests.
* testsuite/27_io/basic_stringbuf/cons/wchar_t/string_view.cc:
New tests.
* testsuite/27_io/basic_istringstream/cons/wchar_t/string_view.cc:
New tests.
* testsuite/27_io/basic_ostringstream/cons/wchar_t/string_view.cc:
New tests.
* testsuite/27_io/basic_stringstream/cons/wchar_t/string_view.cc:
New tests.

Reviewed-by: Jonathan Wakely
libstdc++-v3/include/bits/version.def
libstdc++-v3/include/bits/version.h
libstdc++-v3/include/std/sstream
libstdc++-v3/testsuite/27_io/basic_istringstream/cons/char/string_view.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_istringstream/cons/wchar_t/string_view.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/char/string_view.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/wchar_t/string_view.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/char/string_view.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/wchar_t/string_view.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_stringstream/cons/char/string_view.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_stringstream/cons/wchar_t/string_view.cc [new file with mode: 0644]