Namespaces
Variants

std::ostreambuf_iterator<CharT,Traits>:: ostreambuf_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)
ostreambuf_iterator ( streambuf_type * buffer ) throw ( ) ;
(jusqu'en C++11)
ostreambuf_iterator ( streambuf_type * buffer ) noexcept ;
(depuis C++11)
(2)
ostreambuf_iterator ( ostream_type & stream ) throw ( ) ;
(jusqu'en C++11)
ostreambuf_iterator ( ostream_type & stream ) noexcept ;
(depuis C++11)
1) Construit l'itérateur avec le membre privé streambuf_type* défini sur buffer et le drapeau failed() défini sur false . Le comportement est indéfini si buffer est un pointeur nul.
2) Identique à ostreambuf_iterator ( stream. rdbuf ( ) ) .

Paramètres

stream - le flux de sortie dont le rdbuf() sera accessible par cet itérateur
buffer - le tampon de flux de sortie accessible par cet itérateur

Exemple

#include <fstream>
#include <iostream>
#include <iterator>
int main()
{
    const char* file = "test.txt";
    {
        std::basic_filebuf<char> f;
        f.open(file, std::ios::out);
        std::ostreambuf_iterator<char> out1(&f);
        *out1 = 'a'; // écrit dans le fichier via l'itérateur
    }
    // relire depuis le fichier
    char a;
    std::cout << ((std::ifstream{file} >> a), a) << std::endl;
    std::ostreambuf_iterator<wchar_t> out2{std::wcout};
    *out2 = L'b';
}

Sortie :

a
b

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 112 C++98 l'exigence "l'argument ne peut
pas être nul" était appliquée à la surcharge (2)
s'applique à la surcharge
(1) à la place
P2325R3 C++20 le constructeur par défaut était fourni car C++20
les itérateurs doivent être default_initializable
supprimé ainsi que
l'exigence