Namespaces
Variants

std::not1

Desde es.cppreference.net
 
 
Biblioteca de utilidades
Soporte del lenguaje
Soporte de tipos (tipos básicos, RTTI)
Macros de prueba de características de la biblioteca (C++20)
Utilidades de programa
Funciones variádicas
Soporte de corrutinas (C++20)
Soporte de contratos (C++26)
Comparación a 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)

Antiguos enlazadores y adaptadores
(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 Predicate >
std::unary_negate<Predicate> not1( const Predicate& pred );
(hasta C++14)
template< class Predicate >
constexpr std::unary_negate<Predicate> not1( const Predicate& pred );
(desde C++14)
(obsoleto en C++17)
(eliminado en C++20)

std::not1 es una función auxiliar para crear un objeto función que devuelve el complemento del predicado unario pasado. El objeto función creado es de tipo std::unary_negate<Predicate>.

El tipo de predicado unario debe definir un tipo miembro, argument_type, que sea convertible al tipo de parámetro del predicado. Los objetos función unarios obtenidos de std::ref, std::cref, std::negate, std::logical_not, std::mem_fn, std::function, std::hash, o de otra llamada a std::not1 tienen este tipo definido, al igual que los objetos función derivados del obsoleto std::unary_function.

Parámetros

pred - predicado unario

Valor de retorno

std::not1 devuelve un objeto de tipo std:: unary_negate < Predicate > , construido con pred .

Ejemplo

#include <algorithm>
#include <functional>
#include <iostream>
#include <iterator>
#include <numeric>
#include <vector>
struct LessThan7 : std::unary_function<int, bool>
{
    bool operator()(int i) const { return i < 7; }
};
int main()
{
    std::vector<int> v(10);
    std::iota(std::begin(v), std::end(v), 0);
    std::cout << std::count_if(begin(v), end(v), std::not1(LessThan7())) << '\n';
    // lo mismo que arriba usando std::function
    std::function<bool(int)> less_than_9 = [](int x) { return x < 9; };
    std::cout << std::count_if(begin(v), end(v), std::not1(less_than_9)) << '\n';
}

Salida:

3
1

Véase también

(C++17)
crea un objeto función que devuelve el complemento del resultado del objeto función que contiene
(plantilla de función)
(obsoleto en C++17) (eliminado en C++20)
objeto función contenedor que devuelve el complemento del predicado unario que contiene
(plantilla de clase)
(C++11)
contenedor copiable de cualquier objeto invocable construible por copia
(plantilla de clase)
contenedor solo-movimiento de cualquier objeto invocable que soporta calificadores en una signatura de llamada dada
(plantilla de clase)
(obsoleto en C++17) (eliminado en C++20)
construye objeto personalizado std::binary_negate
(plantilla de función)
(obsoleto en C++11) (eliminado en C++17)
crea un contenedor de objeto función compatible con adaptadores a partir de un puntero a función
(plantilla de función)
(obsoleto en C++11) (eliminado en C++17)
clase base de función unaria compatible con adaptadores
(plantilla de clase)