[istream.rvalue]

# 31 Input/output library [[input.output]](./#input.output)

## 31.7 Formatting and manipulators [[iostream.format]](iostream.format#istream.rvalue)

### 31.7.5 Input streams [[input.streams]](input.streams#istream.rvalue)

#### 31.7.5.6 Rvalue stream extraction [istream.rvalue]

[ð](#lib:operator%3e%3e,basic_istream)

`template<class Istream, class T>
  Istream&& operator>>(Istream&& is, T&& x);
`

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L5776)

*Constraints*: The expression is >> std​::​forward<T>(x) is well-formed
when treated as an [unevaluated operand](expr.context#def:unevaluated_operand "7.2.3 Context dependence [expr.context]") andIstream is publicly and unambiguously derived from ios_base[.](#1.sentence-1)

[2](#2)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L5782)

*Effects*: Equivalent to:is >> std::forward<T>(x);return std::move(is);
