Namespaces
Variants

std:: unary_negate

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* )
unary_negate
( until C++20* )
( until C++20* )
Definido en el encabezado <functional>
template < class Predicate >
struct unary_negate : public std:: unary_function < Predicate :: argument_type , bool > ;
(hasta C++11)
template < class Predicate >
struct unary_negate ;
(desde C++11)
(obsoleto en C++17)
(eliminado en C++20)

std::unary_negate es una función contenedora de objeto que devuelve el complemento del predicado unario que contiene.

El tipo de predicado unario debe definir un tipo miembro, argument_type , que sea convertible al tipo de parámetro del predicado. Los objetos de función unaria 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 de función derivados del obsoleto std::unary_function .

std::unary_negate los objetos se construyen fácilmente con la función auxiliar std::not1 .

Contenidos

Tipos de miembros

Tipo Definición
argument_type Predicate :: argument_type
result_type bool

Funciones miembro

(constructor)
construye un nuevo objeto unary_negate con el predicado proporcionado
(función de miembro pública)
operator()
devuelve el complemento lógico del resultado de una llamada al predicado almacenado
(función de miembro pública)

std::unary_negate:: unary_negate

explicit unary_negate ( Predicate const & pred ) ;
(hasta C++14)
constexpr explicit unary_negate ( Predicate const & pred ) ;
(desde C++14)

Construye un objeto función std::unary_negate con el predicado almacenado pred .

Parámetros

pred - objeto función predicado

std::unary_negate:: operator()

bool operator ( ) ( argument_type const & x ) const ;
(hasta C++14)
constexpr bool operator ( ) ( argument_type const & x ) const ;
(desde C++14)

Devuelve el complemento lógico del resultado de llamar a pred ( x ) .

Parámetros

x - argumento para pasar al predicado

Valor de retorno

El complemento lógico del resultado de llamar a pred ( x ) .

Ejemplo

#include <algorithm>
#include <functional>
#include <iostream>
#include <vector>
struct less_than_7 : std::unary_function<int, bool>
{
    bool operator()(int i) const { return i < 7; }
};
int main()
{
    std::vector<int> v(7, 7);
    v[0] = v[1] = v[2] = 6;
    std::unary_negate<less_than_7> not_less_than_7((less_than_7()));
    // Solución C++11:
    // Usar std::function<bool (int)>
    // std::function<bool (int)> not_less_than_7 =
    //     [](int x)->bool { return !less_than_7()(x); };
    std::cout << std::count_if(v.begin(), v.end(), not_less_than_7);
}

Salida:

4

Véase también

(deprecated in C++17) (removed in C++20)
objeto función wrapper que retorna el complemento del predicado binario que contiene
(plantilla de clase)
(C++11)
wrapper copiable de cualquier objeto invocable copiable
(plantilla de clase)
wrapper no copiable de cualquier objeto invocable que soporta calificadores en una firma de llamada dada
(plantilla de clase)
(deprecated in C++17) (removed in C++20)
construye objetos personalizados de std::unary_negate
(plantilla de función)
(deprecated in C++11) (removed in C++17)
crea un wrapper de objeto función compatible con adaptadores a partir de un puntero a función
(plantilla de función)
(deprecated in C++11) (removed in C++17)
clase base de función unaria compatible con adaptadores
(plantilla de clase)