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

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

Section: 29.7.4.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 >> z

go 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: