operator>>(basic_istream&&, T&&)
returns basic_istream&
, but should probably return
basic_istream&&
Section: 31.7.5.6 [istream.rvalue] Status: Resolved Submitter: Richard Smith Opened: 2015-05-08 Last modified: 2020-11-09
Priority: 3
View all other issues in [istream.rvalue].
View all issues with Resolved status.
Discussion:
Consider:
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 >> zgo from 3 operator>> calls to 6 operator>> calls, and wouldn't prevent dangling references (change the example to auto&&)
[2020-02 Resolved by the adoption of 1203 in Prague.]
[2020-11-09 Resolved for C++20. Status changed: Tentatively Resolved → Resolved.]
Proposed resolution: