This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of New status.

2498. operator>>(basic_istream&&, T&&) returns basic_istream&, but should probably return basic_istream&&

Section: [istream.rvalue] Status: New Submitter: Richard Smith Opened: 2015-05-08 Last modified: 2017-02-03

Priority: 3

View all other issues in [istream.rvalue].

View all issues with New status.



auto& is = make_istream() >> x; // oops, istream object is already gone

With a basic_istream&& return type, the above would be ill-formed, and generally we'd preserve the value category properly.

[2015-06, Telecon]

JW: think this needs proper consideration, it would make

stream() >> x >> y >> z
go from 3 operator>> calls to 6 operator>> calls, and wouldn't prevent dangling references (change the example to auto&&)

Proposed resolution: