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 ( ) ;
(C++11 이전)
ostreambuf_iterator ( streambuf_type * buffer ) noexcept ;
(C++11 이후)
(2)
ostreambuf_iterator ( ostream_type & stream ) throw ( ) ;
(C++11 이전)
ostreambuf_iterator ( ostream_type & stream ) noexcept ;
(C++11 이후)
1) 이터레이터를 생성하며, private streambuf_type* 멤버를 buffer 로 설정하고 failed() 플래그를 false 로 설정합니다. buffer 가 null 포인터인 경우의 동작은 정의되지 않습니다.
2) ostreambuf_iterator ( stream. rdbuf ( ) ) 와 동일합니다.

매개변수

stream - 이 반복자가 접근할 rdbuf() 를 가진 출력 스트림
buffer - 이 반복자가 접근할 출력 스트림 버퍼

예제

#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'; // iterator를 통해 파일에 기록
    }
    // 파일에서 다시 읽기
    char a;
    std::cout << ((std::ifstream{file} >> a), a) << std::endl;
    std::ostreambuf_iterator<wchar_t> out2{std::wcout};
    *out2 = L'b';
}

출력:

a
b

결함 보고서

다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.

DR 적용 대상 게시된 동작 올바른 동작
LWG 112 C++98 "인수가 null일 수 없음" 요구사항이
오버로드 (2)에 적용됨
오버로드 (1)에
적용됨
P2325R3 C++20 C++20 이터레이터가 default_initializable 이어야 하므로
기본 생성자가 제공됨
요구사항과 함께
제거됨