Espacios de nombres
Variantes
Acciones

std::bit_not

De cppreference.com
< cpp‎ | utility‎ | functional
 
 
Biblioteca de servicios
 
Objetos función
Envoltorios de funciones
(C++11)
(C++11)
Aplicación parcial de funciones
(C++20)
(C++11)
Invocación de funciones
(C++17)(C++23)
Objeto función identidad
(C++20)
Envoltorios de referencias
(C++11)(C++11)
Envoltorios de operador 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)
Negadores
(C++17)
Buscadores
Comparadores restringidos
Vinculadores 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++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 archivo de encabezado <functional>
template< class T = void >
struct bit_not;
(desde C++14)

Objeto función para realizar NOT bit a bit. Llama efectivamente a operador~ en el tipo T.

Contenido

[editar] Especializaciones

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

Objeto función que implementa ~x deduciendo el tipo del argumento y el tipo de retorno.
(especialización de plantilla de clase) [editar]

[editar] Tipos miembro

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

Estos tipos miembro se obtienen heredando públicamente de std::unary_function<T, T>.

(hasta C++11)

[editar] Funciones miembro

operator()
Devuelve el resultado de NOT bit a bit de su argumento.
(función miembro pública)

std::bit_not::operator()

constexpr T operator()( const T& arg ) const;

Devuelve el resultado de NOT bit a bit de arg.

Parámetros

arg - Valor para el que calcular NOT bit a bit.

Valor de retorno

El resultado de ~arg.

[editar] Excepciones

Puede lanzar excepciones definidas por la implementación.

Posible implementación

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

[editar] Notas

Aunque std::bit_not se agrega a través de la propuesta posterior a C++11 N3421, se trata como parte de la resolución para Asunto LWG 660 (excepto por su especialización transparente std::bit_not<>) por implementaciones comunes y, por lo tanto, disponible en su modo C++98/03.