Namespaces
Variants

std:: unary_function

From cppreference.net
Utilities library
Function objects
Function invocation
(C++17) (C++23)
Identity function object
(C++20)
Old binders and adaptors
unary_function
( 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 < typename ArgumentType, typename ResultType >
struct unary_function ;
(obsoleto en C++11)
(eliminado en C++17)

std::unary_function es una clase base para crear objetos función con un argumento.

std::unary_function no define operator ( ) ; se espera que las clases derivadas definan esto. std::unary_function proporciona solo dos tipos - argument_type y result_type - definidos por los parámetros de plantilla.

Algunos adaptadores de objetos función de la biblioteca estándar, como std::not1 , requieren que los objetos función que adaptan tengan ciertos tipos definidos; std::not1 requiere que el objeto función que se está adaptando tenga un tipo llamado argument_type . Derivar objetos función que toman un argumento de std::unary_function es una forma sencilla de hacerlos compatibles con esos adaptadores.

std::unary_function está obsoleto en C++11.

Tipos de miembros

Tipo Definición
argument_type ArgumentType
result_type ResultType

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(10, 7);
    v[0] = v[1] = v[2] = 6;
    std::cout << std::count_if(v.begin(), v.end(), std::not1(less_than_7()));
    // C++11 solution:
    // Cast to std::function<bool (int)> somehow - even with a lambda
    // std::cout << std::count_if(v.begin(), v.end(),
    //     std::not1(std::function<bool (int)>([](int i) { return i < 7; })));
}

Salida:

7

Véase también

(C++11)
contenedor copiable de cualquier objeto invocable copiable
(plantilla de clase)
contenedor no copiable de cualquier objeto invocable que soporte calificadores en una firma de llamada dada
(plantilla de clase)
(deprecated in C++11) (removed in C++17)
crea un contenedor 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)
contenedor compatible con adaptadores para un puntero a función unaria
(plantilla de clase)
(deprecated in C++11) (removed in C++17)
clase base de función binaria compatible con adaptadores
(plantilla de clase)