mode(模式?):
input: 使用一個(gè)character隊(duì)列,用來輸入
output: 使用一個(gè)character隊(duì)列,用來輸出
bidirectional: 使用兩個(gè)character隊(duì)列,分別用來輸入、輸出
input-seekable: 使用一個(gè)character隊(duì)列用來輸入,包含一個(gè)讀索引游標(biāo)
output-seekable: 使用一個(gè)character隊(duì)列用來輸出,包含一個(gè)寫索引游標(biāo)
seekable: 使用一個(gè)character隊(duì)列用來輸入輸出,包含一個(gè)讀/寫復(fù)用的索引游標(biāo)
dual-seekable: 使用一個(gè)character隊(duì)列來輸入輸出,包含兩個(gè)索引游標(biāo)分別用來標(biāo)識(shí)讀寫
bidirectional-seekable: 使用兩個(gè)character隊(duì)列分別用來輸入輸出,同時(shí)每個(gè)隊(duì)列包含一個(gè)各自的索引游標(biāo)
*blocking: 如果讀請(qǐng)求永遠(yuǎn)比剩下的character少除了end情況,而且寫請(qǐng)求需要的永遠(yuǎn)比現(xiàn)有的少。那就是一個(gè)blocking。
The Blocking concept does not apply to filters. Instead, filters are required to be blocking-preserving, which means that
a read request never produces fewer characters than requested unless end-of-stream has been reached or unless a read request to a downsteam Source produces fewer characters than requested, and
a write request never consumes fewer characters than requested unless a write request to a downsteam Sink consumes fewer characters than requested.
*如果熟悉stl應(yīng)該就了解traits技術(shù)(應(yīng)該是技巧)
<boost/iostreams/traits.hpp>
這里是boost::iostream庫(kù)的traits
還有個(gè)模版元函數(shù)mod_of