std::bit_not
Определён в заголовочном файле <functional> | ||
|---|---|---|
template< class T = void > struct bit_not; | (начиная с C++14) |
Объект-функция для выполнения побитового НЕ. Фактически вызывает operator~ для типа T.
Специализации
Стандартная библиотека предоставляет специализацию std::bit_not, если T не задан, что позволяет автоматически выводить типы параметров и возвращаемый тип.
|
(C++14) | объект-функция, реализующий ~x с выводом типов параметров и возвращаемого типа (специализация шаблона класса) |
Типы-члены
| Тип | Определение |
|---|---|
result_type (устарело в C++17)(удалено в C++20) |
T |
argument_type (устарело в C++17)(удалено в C++20) |
T |
Функции-члены
|
operator()
(C++14) | возвращает результат побитового НЕ своего аргумента (открытая функция-член) |
std::bit_not::operator()
constexpr T operator()( const T& arg ) const; | (начиная с C++14) |
Возвращает результат побитового НЕ от arg.
Параметры
| arg | - | значение, для которого вычисляется побитовое НЕ |
Возвращаемое значение
Результат ~arg.
Исключения
Может генерировать исключения, определяемые реализацией.
Возможная реализация
constexpr T operator()(const T& arg) const
{
return ~arg;
}
|
Примечания
Хотя std::bit_not добавлен предложением, принятым после C++11, N3421, общепринятые реализации рассматривают его как часть решения по вопросу LWG 660 (за исключением его прозрачной специализации std::bit_not<>), поэтому он доступен в режиме C++98/03.
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/utility/functional/bit_not