Namespaces
Variants

std::bitset<N>::flip

Из ru.cppreference.net
 
 
Библиотека утилит
Поддержка языка
Поддержка типов (базовые типы, RTTI)
Макросы проверки возможностей библиотеки (C++20)
Утилиты программ
Функции с переменным числом аргументов
Поддержка корутин (C++20)
Поддержка контрактов (C++26)
Трёхстороннее сравнение
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Общие утилиты
Операторы отношений (устарело в C++20)
 
 
bitset& flip();
(1) (noexcept начиная с C++11)
(constexpr начиная с C++23)
bitset& flip( std::size_t pos );
(2) (constexpr начиная с C++23)

Инвертирует биты, то есть изменяет true на false и false на true. Эквивалентно операции логического НЕ над частью или всем набором битов.

1) Инвертирует все биты (как operator~, но на месте).
2) Инвертирует бит в позиции pos.

Параметры

pos - позиция бита для инвертирования

Возвращаемое значение

* this

Исключения

2) Выбрасывает std::out_of_range если pos не соответствует допустимой позиции бита.

Пример

#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 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

Смотрите также

устанавливает биты в true или заданное значение
(публичная функция-член)
устанавливает биты в false
(публичная функция-член)
выполняет бинарные операции AND, OR, XOR и NOT
(публичная функция-член)
инвертирует все биты
(публичная функция-член std::vector<bool,Allocator> )