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 | - | プット領域の新しい先頭へのポインタ |
| pend | - | プット領域の新しい終端へのポインタ |
例
#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"で動作するように設定 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) |