std::istreambuf_iterator<CharT,Traits>::istreambuf_iterator
From cppreference.com
                    
                                        
                    < cpp | iterator | istreambuf iterator
                    
                                                            
                    | (1) | ||
| istreambuf_iterator() throw(); | (until C++11) | |
| constexpr istreambuf_iterator() noexcept; | (since C++11) | |
| istreambuf_iterator( std::basic_istream<CharT,Traits>& is ) noexcept; | (2) | |
| istreambuf_iterator( std::basic_streambuf<CharT,Traits>* s ) noexcept; | (3) | |
| istreambuf_iterator( const /* proxy */& p ) noexcept; | (4) | |
| istreambuf_iterator( const istreambuf_iterator& ) noexcept = default; | (5) | (since C++11) | 
1) Constructs an end-of-stream iterator.
2) Initializes the iterator and stores the value of is.rdbuf() in a data member. If is.rdbuf() is null, then end-of-stream iterator is constructed. 
3) Initializes the iterator and stores the value of 
s in a data member. If s is null, then end-of-stream iterator is constructed.4) Effectively call (3) with the 
streambuf_type* pointer p holds.5) The copy constructor is explicitly defaulted.
Parameters
| is | - | stream to obtain the stream buffer from | 
| s | - | stream buffer to initialize the iterator with | 
| p | - | object with implementation defined proxy type |