std::basic_streambuf<CharT,Traits>:: setp
| I/O manipulators | ||||
| Print functions (C++23) | ||||
| C-style I/O | ||||
| Buffers | ||||
|
(C++23)
|
||||
|
(
C++98/26*
)
|
||||
|
(C++20)
|
||||
| Streams | ||||
| Abstractions | ||||
| File I/O | ||||
| String I/O | ||||
| Array I/O | ||||
|
(C++23)
|
||||
|
(C++23)
|
||||
|
(C++23)
|
||||
|
(
C++98/26*
)
|
||||
|
(
C++98/26*
)
|
||||
|
(
C++98/26*
)
|
||||
| Synchronized Output | ||||
|
(C++20)
|
||||
| Types | ||||
| Error category interface | ||||
|
(C++11)
|
||||
|
(C++11)
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
protected
:
void setp ( char_type * pbeg, char_type * pend ) ; |
||
put 영역을 정의하는 포인터들의 값을 설정합니다.
호출 후에, pbase ( ) == pbeg , pptr ( ) == pbeg 그리고 epptr ( ) == pend 가 모두 true 입니다.
만약
[
pbeg
,
pend
)
중 어느 하나라도
유효한 범위
가 아닐 경우, 동작은 정의되지 않습니다.
목차 |
매개변수
| pbeg | - | put 영역의 새로운 시작을 가리키는 포인터 |
| pend | - | put 영역의 새로운 끝을 가리키는 포인터 |
예제
#include <array> #include <cstddef> #include <iostream> // std::array로 구현된 std::ostream용 버퍼 template<std::size_t size, class CharT = char> struct ArrayedStreamBuffer : std::basic_streambuf<CharT> { using Base = std::basic_streambuf<CharT>; using char_type = typename Base::char_type; ArrayedStreamBuffer() { // "buffer"와 작업하기 위한 put 영역 포인터 설정 Base::setp(buffer.data(), buffer.data() + size); } void print_buffer() { for (char_type i : buffer) { if (i == 0) std::cout << "\\0"; else std::cout << i; std::cout << ' '; } std::cout << '\n'; } private: std::array<char_type, size> buffer{}; // "buffer" 값 초기화 }; int main() { ArrayedStreamBuffer<10> streambuf; std::ostream stream(&streambuf); stream << "hello"; stream << ","; streambuf.print_buffer(); }
출력:
h e l l o , \0 \0 \0 \0
결함 보고서
다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.
| DR | 적용 대상 | 게시된 동작 | 올바른 동작 |
|---|---|---|---|
| LWG 4023 | C++98 |
setp
가 출력 시퀀스가 유효한 범위일 것을 요구하지 않았음
|
요구함 |
참고 항목
|
입력 시퀀스의 시작, 다음, 끝 포인터를 재배치합니다
(protected member function) |