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
(
)
;
|
(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
이어야 하므로
기본 생성자가 제공됨 |
요구사항과 함께
제거됨 |