std::basic_osyncstream
出自cppreference.com
| 在標頭 <syncstream> 定義
|
||
| |
(C++20 起) | |
類模板 std::basic_osyncstream 是 std::basic_syncbuf 的便利包裝。它提供機制以對寫入同一流的各線程進行同步。
它能用作具名變量:
{
std::osyncstream sync_out(std::cout); // std::cout 的同步包装
sync_out << "Hello, ";
sync_out << "World!";
sync_out << std::endl; // 标记冲洗,但仍未进行
sync_out << "and more!\n";
} // 传输各字符并冲洗 std::cout
還有臨時量:
std::osyncstream(std::cout) << "Hello, " << "World!" << '\n';
它提供保證:所有對最終目標緩衝區(上例中是 std::cout)作出的輸出將免除數據競爭,而且將不以任何方式穿插或截斷,只要每次對該最終目標緩衝區的寫入都通過 std::basic_osyncstream(可以不同的)實例進行。
std::basic_osyncstream 的典型實現僅保有一個數據成員:被包裝的 std::basic_syncbuf。
繼承圖
提供了幾個針對常用字符類型的 typedef:
在標頭
<syncstream> 定義 | |
| 類型 | 定義 |
std::osyncstream
|
std::basic_osyncstream<char>
|
std::wosyncstream
|
std::basic_osyncstream<wchar_t>
|
成員類型
| 成員類型 | 定義 |
char_type
|
CharT
|
traits_type
|
Traits;Traits::char_type 不是 CharT 時程序非良構。
|
int_type
|
Traits::int_type
|
pos_type
|
Traits::pos_type
|
off_type
|
Traits::off_type
|
allocator_type
|
Allocator
|
streambuf_type
|
std::basic_streambuf<CharT, Traits>
|
syncbuf_type
|
std::basic_syncbuf<CharT, Traits, Allocator>
|
成員函數
構造 basic_osyncstream 對象 (公開成員函數) | |
賦值 basic_osyncstream 對象 (公開成員函數) | |
銷毀 basic_osyncstream 並發出它的內部緩衝區 (公開成員函數) | |
獲得指向底層 basic_syncbuf 的指針 (公開成員函數) | |
| 獲得指向最終目標流緩衝的指針 (公開成員函數) | |
調用底層 basic_syncbuf 上的 emit() 以傳輸它的內部數據到最終目標 (公開成員函數) |
繼承自 std::basic_ostream
成員函數
有格式輸出 | |
| 插入帶格式數據 ( std::basic_ostream<CharT,Traits> 的公開成員函數)
| |
無格式輸出 | |
| 插入字符 ( std::basic_ostream<CharT,Traits> 的公開成員函數)
| |
| 按區塊插入字符 ( std::basic_ostream<CharT,Traits> 的公開成員函數)
| |
尋位 | |
| 返回輸出位置指示器 ( std::basic_ostream<CharT,Traits> 的公開成員函數)
| |
| 設置輸出位置指示器 ( std::basic_ostream<CharT,Traits> 的公開成員函數)
| |
雜項 | |
| 與底層存儲設備同步 ( std::basic_ostream<CharT,Traits> 的公開成員函數)
| |
成員類
| 為輸出操作實現流準備的基本邏輯 ( std::basic_ostream<CharT,Traits> 的公開成員類)
|
繼承自 std::basic_ios
成員類型
| 成員類型 | 定義 |
char_type
|
CharT
|
traits_type
|
Traits
|
int_type
|
Traits::int_type
|
pos_type
|
Traits::pos_type
|
off_type
|
Traits::off_type
|
成員函數
狀態函數 | |
| 檢查是否沒有發生錯誤,即是否可執行輸入/輸出操作 ( std::basic_ios<CharT,Traits> 的公開成員函數)
| |
| 檢查是否到達了文件末尾 ( std::basic_ios<CharT,Traits> 的公開成員函數)
| |
| 檢查是否發生了可恢復的錯誤 ( std::basic_ios<CharT,Traits> 的公開成員函數)
| |
| 檢查是否已發生不可恢復的錯誤 ( std::basic_ios<CharT,Traits> 的公開成員函數)
| |
| 檢查是否有錯誤發生(fail() 的同義詞) ( std::basic_ios<CharT,Traits> 的公開成員函數)
| |
檢查是否沒有發生錯誤(!std::basic_ios::fail 的同義詞) ( std::basic_ios<CharT,Traits> 的公開成員函數)
| |
| 返回狀態標誌 ( std::basic_ios<CharT,Traits> 的公開成員函數)
| |
| 設置狀態標誌 ( std::basic_ios<CharT,Traits> 的公開成員函數)
| |
| 修改狀態標誌 ( std::basic_ios<CharT,Traits> 的公開成員函數)
| |
格式化 | |
| 複製格式化信息 ( std::basic_ios<CharT,Traits> 的公開成員函數)
| |
| 管理填充字符 ( std::basic_ios<CharT,Traits> 的公開成員函數)
| |
雜項 | |
| 管理異常掩碼 ( std::basic_ios<CharT,Traits> 的公開成員函數)
| |
| 設置本地環境 ( std::basic_ios<CharT,Traits> 的公開成員函數)
| |
| 管理相關的流緩衝區 ( std::basic_ios<CharT,Traits> 的公開成員函數)
| |
| 管理綁定的流 ( std::basic_ios<CharT,Traits> 的公開成員函數)
| |
| 窄化字符 ( std::basic_ios<CharT,Traits> 的公開成員函數)
| |
| 拓寬字符 ( std::basic_ios<CharT,Traits> 的公開成員函數)
| |
繼承自 std::ios_base
成員函數
格式化 | |
| 管理格式標誌 ( std::ios_base 的公開成員函數)
| |
| 設置特定格式標誌 ( std::ios_base 的公開成員函數)
| |
| 清除特定格式的標誌 ( std::ios_base 的公開成員函數)
| |
| 管理浮點數操作的精度 ( std::ios_base 的公開成員函數)
| |
| 管理欄位寬度 ( std::ios_base 的公開成員函數)
| |
本地環境 | |
| 設置本地環境 ( std::ios_base 的公開成員函數)
| |
| 返回當前本地環境 ( std::ios_base 的公開成員函數)
| |
內部可擴展數組 | |
[靜態] |
返回能安全用作 pword() 和 iword() 的索引的程序範圍內獨有的整數 ( std::ios_base 的公開靜態成員函數)
|
若必要則調整私有存儲的大小,並訪問位於給定索引的 long 元素 ( std::ios_base 的公開成員函數)
| |
若需要則調整私有存儲的大小,並訪問位於給定索引的 void* 元素 ( std::ios_base 的公開成員函數)
| |
雜項 | |
| 註冊事件回調函數 ( std::ios_base 的公開成員函數)
| |
[靜態] |
設置 C++ 和 C 的輸入/輸出庫是否可以互操作 ( std::ios_base 的公開靜態成員函數)
|
成員類 | |
| 流異常 ( std::ios_base 的公開成員類)
| |
| 初始化標準流對象 ( std::ios_base 的公開成員類)
| |
成員類型和常量 | |||||||||||||||||||||||||||||||||||||||
| 類型 | 解釋 | ||||||||||||||||||||||||||||||||||||||
流打開模式類型 同時定義下列常量:
(typedef) | |||||||||||||||||||||||||||||||||||||||
| 格式化標誌類型
亦定義下列常量:
(typedef) | |||||||||||||||||||||||||||||||||||||||
| 流狀態類型
亦定義下列常量:
(typedef) | |||||||||||||||||||||||||||||||||||||||
| 尋位方向類型
亦定義下列常量:
(typedef) | |||||||||||||||||||||||||||||||||||||||
| 指定事件類型 (枚舉) | |||||||||||||||||||||||||||||||||||||||
| 回調函數類型 (typedef) | |||||||||||||||||||||||||||||||||||||||
註解
| 功能特性測試宏 | 值 | 標準 | 功能特性 |
|---|---|---|---|
__cpp_lib_syncbuf |
201803L |
(C++20) | 帶同步的緩衝 ostream(std::osyncstream,std::syncbuf)和操縱符
|