Namespaces
Variants

std:: bit_not

From cppreference.net
Utilities library
Function objects
Function invocation
(C++17) (C++23)
Identity function object
(C++20)
Old binders and adaptors
( until C++17* )
( until C++17* )
( until C++17* )
( until C++17* )
( until C++17* ) ( until C++17* ) ( until C++17* ) ( until C++17* )
( until C++20* )
( until C++20* )
( until C++17* ) ( until C++17* )
( until C++17* ) ( until C++17* )

( until C++17* )
( until C++17* ) ( until C++17* ) ( until C++17* ) ( until C++17* )
( until C++20* )
( until C++20* )
Definido en el encabezado <functional>
template < class T = void >
struct bit_not ;
(desde C++14)

Objeto función para realizar la operación NOT bit a bit. Efectivamente llama operator~ en el tipo T .

Contenidos

Especializaciones

La biblioteca estándar proporciona una especialización de std::bit_not cuando T no está especificado, lo que deja que los tipos de parámetros y el tipo de retorno sean deducidos.

objeto función que implementa ~x deduciendo tipos de parámetros y retorno
(especialización de plantilla de clase)

Tipos de miembros

Tipo Definición
result_type (obsoleto en C++17) (eliminado en C++20) T
argument_type (obsoleto en C++17) (eliminado en C++20) T

Funciones miembro

operator()
(C++14)
devuelve el resultado del NOT bit a bit de su argumento
(función miembro pública)

std::bit_not:: operator()

constexpr T operator ( ) ( const T & arg ) const ;
(desde C++14)

Devuelve el resultado del NOT bit a bit de arg .

Parámetros

arg - valor sobre el cual calcular el NOT bit a bit

Valor de retorno

El resultado de ~arg .

Excepciones

Puede lanzar excepciones definidas por la implementación.

Posible implementación

constexpr T operator()(const T& arg) const
{
    return ~arg;
}

Notas

Aunque std::bit_not se añadió mediante la propuesta posterior a C++11 N3421 , es tratado como parte de la resolución para LWG issue 660 (excepto por su especialización transparente std::bit_not<> ) por implementaciones comunes, y por lo tanto disponible en sus modos C++98/03.