# std::istreambuf_iterator<CharT,Traits>::istreambuf_iterator

< cpp‎ | iterator‎ | istreambuf iterator

| (1) |
istreambuf_iterator() throw(); |  | (C++11 前)
constexpr istreambuf_iterator() noexcept; |  | (C++11 起)
constexpr istreambuf_iterator( std::default_sentinel_t ) noexcept; | (2) | (C++20 起)
| (3) |
istreambuf_iterator( std::basic_istream<CharT,Traits>& is ) throw(); |  | (C++11 前)
istreambuf_iterator( std::basic_istream<CharT,Traits>& is ) noexcept; |  | (C++11 起)
| (4) |
istreambuf_iterator( std::basic_streambuf<CharT,Traits>* s ) throw(); |  | (C++11 前)
istreambuf_iterator( std::basic_streambuf<CharT,Traits>* s ) noexcept; |  | (C++11 起)
| (5) |
istreambuf_iterator( const /* proxy */& p ) throw(); |  | (C++11 前)
istreambuf_iterator( const /* proxy */& p ) noexcept; |  | (C++11 起)
istreambuf_iterator( const istreambuf_iterator& ) noexcept = default; | (6) | (C++11 起)

1-2) 构造流尾迭代器。
3) 初始化迭代器并存储 is.rdbuf() 的值于数据成员。若 is.rdbuf() 为空，则构造流尾迭代器。
4) 初始化迭代器并存储 `s` 的值于数据成员。若 `s` 为空，则构造流尾迭代器。
6) 等效于以 `p` 所保有的 `streambuf_type*` 指针调用 (3) 。
6) 复制构造函数为平凡且为显式默认化。

复制构造函数被等效地隐式声明，且不保证为平凡。 | (C++11 前)

### 参数

is | - | 获得流缓冲来源的输出流
s | - | 用以初始化迭代器的流缓冲
p | - | 拥有实现定义代理类型的对象