Namespaces
Variants

std::bit_not

De es.cppreference.net
 
 
Biblioteca de utilidades
Soporte del lenguaje
Soporte de tipos (tipos básicos, RTTI)
Macros de prueba de características de biblioteca (C++20)
Utilidades de programa
Funciones variádicas
Soporte de corrutinas (C++20)
Soporte de contratos (C++26)
Comparación de tres vías
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Utilidades generales
Operadores relacionales (obsoleto en C++20)
 
Objetos función
Invocación de funciones
(C++17)(C++23)
Objeto función identidad
(C++20)
Envoltorios de operadores transparentes
(C++14)
(C++14)
(C++14)
(C++14)  
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)

Enlazadores y adaptadores antiguos
(hasta C++17*)
(hasta C++17*)
(hasta C++17*)
(hasta C++17*)  
(hasta C++17*)
(hasta C++17*)(hasta C++17*)(hasta C++17*)(hasta C++17*)
(hasta C++20*)
(hasta C++20*)
(hasta C++17*)(hasta C++17*)
(hasta C++17*)(hasta C++17*)

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

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

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.