std::bitset<N>::flip
From cppreference.com
 
 
 
 
 
 C++ 
 Feature test macros (C++20)
 Concepts library (C++20)
 Metaprogramming library (C++11)
 Ranges library (C++20)
 Filesystem library (C++17)
 Concurrency support library (C++11)
 Execution control library (C++26)
Utilities library 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  
Relational operators (deprecated in C++20) Integer comparison functions  
 
 
 
 Swap and type operations  Common vocabulary types 
(constexpr since C++23)
 
 
 
 
 
 
 
 
 
 
 
  Type support (basic types, RTTI)
 Library feature-test macros (C++20)
(C++11)
(C++20)
(C++26)
(C++20)
 Coroutine support (C++20)
 Contract support (C++26)
(C++20)(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
  (C++20)(C++20)(C++20)
  (C++20)(C++20)(C++20)
 General utilities
(C++20)(C++20)(C++20)
  (C++20)(C++20)(C++20)
(C++20)
bitset& flip();
 (1)
 (noexcept since C++11) (constexpr since C++23)
bitset& flip( std::size_t pos );
 (2)
 (constexpr since C++23)
Flips bits, i.e. changes true values to false and false values to true. Equivalent to a logical NOT operation on part or all of the bitset.
1) Flips all bits (like operator~ , but in-place).
2) Flips the bit at the position pos.
[edit] Parameters
 pos
 -
 the position of the bit to flip
[edit] Return value
*this
[edit] Exceptions
[edit] Example
Run this code
#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'; }
Output:
0000 0001 0101 1010
[edit] Defect reports
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
| DR | Applied to | Behavior as published | Correct behavior | 
|---|---|---|---|
| LWG 2250 | C++98 | the behavior was undefined if pos does not correspond to a valid bit position | always throws an exception in this case |