Spec-Zone.ru › C++

std::bit_not

Определён в заголовочном файле <functional>
template< class T = void >
struct bit_not;
(начиная с C++14)

Объект-функция для выполнения побитового НЕ. Фактически вызывает operator~ для типа T.

Специализации

Стандартная библиотека предоставляет специализацию std::bit_not, если T не задан, что позволяет автоматически выводить типы параметров и возвращаемый тип.

bit_not<void>
(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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API