samedi 25 septembre 2021

Was LWG1203 "More useful rvalue stream insertion" retroactively applied to C++11 or C++20?

Inspired by discussion in my recent question.

There is an LWG 1203 C++ Standard Library Issue. It changes operator>>(istream&&, T&&) into a more generic operator>>(Stream&&, T&&) (with some restraints on Stream) so the type of stream can be preserved and code like (stringstream{} << 123).str() works.

As far as I understand, this issue has been changed from WP to C++20 status in pre-Varna mailing and hasn't been changed since.

However, this change on cppreference mentions that it was retroactively applied to C++11. Moreover, it looks like all of libstdc++, libc++ and Microsoft STL implement LWG 1203 strictly before C++20 as well and have removed the old behavior.

Am I missing some other C++ Standard memos that applied LWG 1203 to C++11, C++14 and C++17 as well?

Aucun commentaire:

Enregistrer un commentaire