std::bitset<N>::flip
From cppreference.com
bitset& flip(); |
(1) | (C++11 以降 noexcept) (C++23 以降 constexpr) |
bitset& flip( std::size_t pos ); |
(2) | (C++23 以降 constexpr) |
ビットを反転させます。つまり、true を false に、false を true に変更します。ビットセットの一部または全体に対する論理 NOT 演算と同等です。
1) すべてのビットを反転させます (operator~ と同様ですが、インプレースで行われます)。
2) 位置 pos のビットを反転させます。
目次 |
[編集] パラメータ
| pos | - | 反転するビットの位置 |
[編集] 戻り値
*this
[編集] 例外
[編集] 例
このコードを実行
#include <bitset> #include <iostream> int main() { std::bitset<4> flops; std::cout << flops << '\n' << flops.flip(0) << '\n' << flops.flip(2) << '\n' << flops.flip() << '\n'; }
出力
0000 0001 0101 1010
[編集] 不具合報告
以下の動作変更を伴う欠陥報告が、以前に公開されたC++標準に遡って適用されました。
| DR | 適用対象 | 公開された動作 | 正しい動作 |
|---|---|---|---|
| LWG 2250 | C++98 | posが有効なビット位置に対応しない場合、動作は未定義でした。 この場合、常に例外がスローされます。 |
この場合、常に例外がスローされます。 例外がスローされます。 |
[編集] 関連項目
| ビットを true または指定された値に設定する (public member function) | |
| ビットを false に設定する (public member function) | |
| ビット単位のAND、OR、XOR、NOTを実行する (public member function) | |
| すべてのビットを反転させる ( std::vector<bool,Allocator> の public メンバ関数) |