std::bitset<N>:: operator[]
From cppreference.net
C++
Utilities library
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
std::bitset
| Member types | ||||
| Member functions | ||||
|
(until C++20)
|
||||
| Element access | ||||
|
bitset::operator[]
|
||||
| Capacity | ||||
| Modifiers | ||||
| Conversions | ||||
|
(C++11)
|
||||
| Non-member functions | ||||
| Helper classes | ||||
|
(C++11)
|
||||
|
bool
operator
[
]
(
std::
size_t
pos
)
const
;
|
(1) | (constexpr since C++11) |
|
reference operator
[
]
(
std::
size_t
pos
)
;
|
(2) | (constexpr since C++23) |
位置 pos のビットにアクセスします。
1)
ビットの値を返します。
2)
値を変更可能にする型
std::bitset::reference
のオブジェクトを返します。
|
|
(C++26まで) |
|
|
(C++26以降) |
目次 |
パラメータ
| pos | - | 返されるビットの位置 |
戻り値
1)
要求されたビットの値。
2)
型
std::bitset::reference
のオブジェクト。要求されたビットへの書き込みを可能にします。
例外
例外を送出しません。
例
このコードを実行
#include <bitset> #include <cstddef> #include <iostream> int main() { std::bitset<8> b1{0b00101010}; // 42のバイナリリテラル for (std::size_t i = 0; i < b1.size(); ++i) std::cout << "b1[" << i << "]: " << b1[i] << '\n'; b1[0] = true; // bitset::referenceを通じて最初のビットを変更 std::cout << "After setting bit 0, b1 holds " << b1 << '\n'; }
出力:
b1[0]: 0 b1[1]: 1 b1[2]: 0 b1[3]: 1 b1[4]: 0 b1[5]: 1 b1[6]: 0 b1[7]: 0 After setting bit 0, b1 holds 00101011
欠陥報告
以下の動作変更の欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。
| DR | 適用対象 | 公開時の動作 | 正しい動作 |
|---|---|---|---|
| LWG 11 | C++98 |
1. C++標準での記述が欠落していた
2. 非constオーバーロードのみ存在した |
1. 記述を追加
2. constオーバーロードを追加 |
| LWG 907 | C++98 |
pos
のビットを読み取る動作は
test(pos)
と同等であったが、
test()
は例外をスローする可能性がある
|
test()
への言及を回避
|
関連項目
|
特定のビットにアクセス
(公開メンバ関数) |