class template
<spanstream>
std::basic_ospanstream(C++23)
namespace std {
template <class CharT,
class Traits = char_traits<CharT> >
class basic_ospanstream : public basic_ostream<CharT, Traits>;
using ospanstream = basic_ospanstream<char>;
using wospanstream = basic_ospanstream<wchar_t>;
}
概要
std::basic_ospanstreamクラスは、std::span を使用した固定長ストリームバッファを出力先とする出力ストリームである。
メンバ関数
| 名前 | 説明 | 対応バージョン |
|---|---|---|
(constructor) |
コンストラクタ | C++23 |
operator= |
ムーブ代入 | C++23 |
swap |
値の交換 | C++23 |
rdbuf |
ストリームバッファオブジェクトの設定・取得 | C++23 |
span |
std::spanオブジェクトの設定・取得 |
C++23 |
非メンバ関数
| 名前 | 説明 | 対応バージョン |
|---|---|---|
swap |
2つのオブジェクトを入れ替える | C++23 |
メンバ型
| 名前 | 説明 | 対応バージョン |
|---|---|---|
char_type |
テンプレート仮引数CharT |
C++23 |
int_type |
Traits::int_type |
C++23 |
pos_type |
Traits::pos_type |
C++23 |
off_type |
Traits::off_type |
C++23 |
traits_type |
テンプレート仮引数Traits |
C++23 |
例
#include <iostream>
#include <span>
#include <spanstream>
int main()
{
char buf[256] = {};
std::span<char> span{buf};
std::ospanstream oss(span);
// 数値や文字列を書き込む
oss << "The answer is " << 42 << " and pi is approximately " << 3.14;
// 先頭から文字列出力
const char* p = oss.span().data();
std::cout << p << std::endl;
}
出力
The answer is 42 and pi is approximately 3.14
バージョン
言語
- C++23
処理系
- Clang: ??
- GCC: ??
- Visual C++: ??