operator<<,>> (std::bitset)
|
ヘッダーで定義
<bitset>
|
||
|
template
<
class
CharT,
class
Traits,
std::
size_t
N
>
std::
basic_ostream
<
CharT, Traits
>
&
|
(1) | |
|
template
<
class
CharT,
class
Traits,
std::
size_t
N
>
std::
basic_istream
<
CharT, Traits
>
&
|
(2) | |
ビットセットを文字ストリームに挿入または抽出します。
1と0の表現に使用する文字は、現在適用されているロケールから std:: use_facet < std:: ctype < CharT >> ( os. getloc ( ) ) . widen ( ) を呼び出し、引数として '1' と '0' を指定して取得する。
文字抽出は以下のいずれかが発生するまで継続される:
- N 文字が読み込まれた場合
- is でEOFが発生した場合
- 次の文字が is. widen ( '0' ) でも is. widen ( '1' ) でもない場合
目次 |
パラメータ
| os | - | 書き込み先の文字ストリーム |
| is | - | 読み取り元の文字ストリーム |
| x | - | 読み書きされるビットセット |
戻り値
例
#include <bitset> #include <iostream> #include <sstream> int main() { std::string bit_string = "001101"; std::istringstream bit_stream(bit_string); std::bitset<3> b1; bit_stream >> b1; // "001"を読み取り、ストリームには"101"が残る std::cout << b1 << '\n'; std::bitset<8> b2; bit_stream >> b2; // "101"を読み取り、8ビットセットを"00000101"で埋める std::cout << b2 << '\n'; }
出力:
001 00000101
欠陥報告
以下の動作変更の欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。
| DR | 適用対象 | 公開時の動作 | 正しい動作 |
|---|---|---|---|
| LWG 303 | C++98 |
単一バイト文字が
is から抽出されたが、
CharT
は複数バイトを持つ可能性がある
|
CharT
を抽出し、
ワイド化された '0' および '1' と比較する |
| LWG 396 | C++98 | operator << によって書き込まれる内容はロケール非依存であった | ワイド化された '0' および '1' を書き込む |
| LWG 3199 | C++98 |
std::bitset<0>
の抽出は常に
failbit
を設定する
|
そのような抽出は
failbit
を設定しない
|
関連項目
|
バイナリ左シフトおよび右シフトを実行する
(公開メンバ関数) |