std::bitset<N>::set
From cppreference.com
bitset& set(); |
(1) | (C++11 以降 noexcept) (C++23 以降 constexpr) |
| bitset& set( std::size_t pos, bool value = true ); |
(2) | (C++23 以降 constexpr) |
すべてのビットをtrueに設定するか、指定された値に1つのビットを設定します。
1) すべてのビットをtrueに設定します。
2) 位置posのビットを指定された値valueに設定します。
目次 |
[編集] パラメータ
| pos | - | 設定するビットの位置(0から数えて、すなわち最下位ビットから最上位ビットへ) |
| value | - | ビットを設定する値 |
[編集] 戻り値
*this
[編集] 例外
[編集] 例
このコードを実行
#include <bitset> #include <cstddef> #include <iostream> int main() { std::bitset<8> b; std::cout << b << '\n'; std::cout << b.set() << '\n'; std::cout << b.reset() << '\n'; for (std::size_t i = 1; i < b.size(); i += 2) b.set(i); std::cout << b << '\n'; }
出力
00000000 11111111 00000000 10101010
[編集] 不具合報告
以下の動作変更を伴う欠陥報告が、以前に公開されたC++標準に遡って適用されました。
| DR | 適用対象 | 公開された動作 | 正しい動作 |
|---|---|---|---|
| LWG 186 | C++98 | value の型はintでした。 | bool に修正されました。 |
| LWG 2250 | C++98 | posが有効なビット位置に対応しない場合、動作は未定義でした。 この場合、常に例外がスローされます。 |
この場合、常に例外がスローされます。 例外がスローされます。 |
[編集] 関連項目
| ビットを false に設定する (public member function) | |
| ビットの値を反転させる (public member function) |