Namespaces
Variants

std::istream_iterator<T,CharT,Traits,Distance>:: istream_iterator

From cppreference.net
Iterator library
Iterator concepts
Iterator primitives
Algorithm concepts and utilities
Indirect callable concepts
Common algorithm requirements
(C++20)
(C++20)
(C++20)
Utilities
(C++20)
Iterator adaptors
Range access
(C++11) (C++14)
(C++14) (C++14)
(C++11) (C++14)
(C++14) (C++14)
(C++17) (C++20)
(C++17)
(C++17)
(1)
istream_iterator ( ) ;
(jusqu'en C++11)
constexpr istream_iterator ( ) ;
(depuis C++11)
constexpr istream_iterator ( std:: default_sentinel_t ) ;
(2) (depuis C++20)
istream_iterator ( istream_type & stream ) ;
(3)
(4)
istream_iterator ( const istream_iterator & other ) ;
(jusqu'en C++11)
istream_iterator ( const istream_iterator & other ) = default ;
(depuis C++11)
1,2) Construit l'itérateur de fin de flux , initialise la valeur stockée par valeur. Ce constructeur est constexpr si l'initialiseur dans la définition auto x = T ( ) ; est un initialiseur constant (depuis C++11) .
3) Initialise l'itérateur, stocke l'adresse de stream dans un membre de données, et effectue la première lecture depuis le flux d'entrée pour initialiser le membre de données de valeur mise en cache.
4) Construit une copie de other . Si std:: is_trivially_copy_constructible < T > :: value est true , ce constructeur de copie est un constructeur de copie trivial. (depuis C++11)

Paramètres

stream - flux pour initialiser l' istream_iterator avec
other - un autre istream_iterator du même type

Exemple

#include <algorithm>
#include <iostream>
#include <iterator>
#include <sstream>
int main()
{
    std::istringstream stream("1 2 3 4 5");
    std::copy(
        std::istream_iterator<int>(stream),
        std::istream_iterator<int>(),
        std::ostream_iterator<int>(std::cout, " ")
    );
}

Sortie :

1 2 3 4 5

Rapports de défauts

Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.

DR Appliqué à Comportement publié Comportement corrigé
LWG 1280 C++98 surcharge (3) stockait stream directement stocke son adresse à la place
P0738R2 C++98 la première lecture pouvait être différée jusqu'au premier déréférencement toujours effectuée dans le constructeur