std::ostreambuf_iterator<CharT,Traits>:: ostreambuf_iterator
From cppreference.net
<
cpp
|
iterator
|
ostreambuf iterator
C++
Iterator library
| Iterator concepts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Iterator primitives | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Algorithm concepts and utilities | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Indirect callable concepts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Common algorithm requirements | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Utilities | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Iterator adaptors | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
std::ostreambuf_iterator
| Member functions | ||||
|
ostreambuf_iterator::ostreambuf_iterator
|
||||
| (1) | ||
|
ostreambuf_iterator
(
streambuf_type
*
buffer
)
throw
(
)
;
|
(hasta C++11) | |
|
ostreambuf_iterator
(
streambuf_type
*
buffer
)
noexcept
;
|
(desde C++11) | |
| (2) | ||
|
ostreambuf_iterator
(
ostream_type
&
stream
)
throw
(
)
;
|
(hasta C++11) | |
|
ostreambuf_iterator
(
ostream_type
&
stream
)
noexcept
;
|
(desde C++11) | |
1)
Construye el iterador con el miembro privado
streambuf_type*
establecido en
buffer
y la bandera
failed()
establecida en
false
. El comportamiento es indefinido si
buffer
es un puntero nulo.
2)
Igual que
ostreambuf_iterator
(
stream.
rdbuf
(
)
)
.
Parámetros
| stream | - |
el flujo de salida cuyo
rdbuf()
será accedido por este iterador
|
| buffer | - | el búfer de flujo de salida que será accedido por este iterador |
Ejemplo
Ejecutar este código
#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'; // escribe al archivo mediante el iterador } // leer del archivo char a; std::cout << ((std::ifstream(file) >> a), a) << std::endl; std::ostreambuf_iterator<wchar_t> out2{std::wcout}; *out2 = L'b'; }
Salida:
a b
Informes de defectos
Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.
| DR | Se aplica a | Comportamiento publicado | Comportamiento correcto |
|---|---|---|---|
| LWG 112 | C++98 |
el requisito "el argumento no puede
ser nulo" se aplicaba a la sobrecarga (2) |
se aplica a la sobrecarga
(1) en su lugar |
| P2325R3 | C++20 |
el constructor por defecto se proporcionaba ya que C++20
requiere que los iteradores sean
default_initializable
|
eliminado junto con
el requisito |