7

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?

HolyBlackCat
  • 78,603
  • 9
  • 131
  • 207
yeputons
  • 8,478
  • 34
  • 67

1 Answers1

1

If you have access to the LWG mailing list, the "[isocpp-lib] LWG 1203 broke its own motivation" thread discusses this issue and mentions that library issues are treated as Defect Reports by default meaning that their fixes apply retroactively. This includes the fix to LWG 1203.

vitaut
  • 49,672
  • 25
  • 199
  • 336