Espacios de nombres
Variantes
Acciones

Objetos función

De cppreference.com
< cpp‎ | utility
 
 
 
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)
 

Un objeto función es cualquier objeto para el que el operador llamada a función está definido. C++ proporciona varios objetos función integrados así como apoyo para la creación y manipulación de nuevos objetos función.

Contenido

[editar] Envoltorios de funciones

std::function proporciona apoyo para almacenar objetos función arbitrarios.

(C++11)
Envuelve un objeto que puede ser llamado a cualquier tipo con la signatura de llamada a función especificada.
(plantilla de clase) [editar]
Envuelve un objeto invocable de cualquier tipo con la signatura de llamada a función especificada.
(plantilla de clase) [editar]
La excepción que se lanza cuando se invoca un objeto std::function vacío.
(clase) [editar]
(C++11)
Crea un objeto función de un puntero a un miembro.
(plantilla de función) [editar]

[editar] Invocación de funciones

std::invoke puede invocar cualquier objeto Callable (invocable) con los argumentos dados.

(C++17)
Invoca cualquier objeto Callable con los argumentos dados.
(plantilla de función) [editar]

[editar] Identidad

std::identity es el objeto función identidad: devuelve su argumento sin cambiarlo.

(C++20)
Objeto función que devuelve su argumento sin cambiarlo.
(clase) [editar]

[editar] Aplicación parcial de funciones

std::bind_front y std::bind proporcionan apoyo para la aplicación parcial de funciones, es decir, la vinculación de argumentos a funciones para producir nuevas funciones.

Vincula un número variable de argumentos, en orden, a un objeto función.
(plantilla de función) [editar]
(C++11)
Vincula uno o más argumentos a un objeto función.
(plantilla de función) [editar]
Indica que un objeto es una expresión std::bind o puede usarse como tal.
(plantilla de clase) [editar]
Indica que un objeto es un marcador de posición estándar o puede usarse como tal.
(plantilla de clase) [editar]
Definido en el espacio de nombres std::placeholders
Marcadores de posición para los argumentos no vinculados en una expresión std::bind.
(constante) [editar]

[editar] Negadores

std::not_fn crea un objeto función que niega el resultado del objeto invocable que se la pasó.

(C++17)
Crea un objeto función que devuelve el complemento del resultado del objeto función que mantiene.
(plantilla de función) [editar]

[editar] Buscadores

Se proporcionan buscadores que implementan varios algoritmos de búsqueda de cadenas y que se pueden usar o bien directamente o con std::search.

Implementación del algoritmo de búsqueda de la biblioteca estándar de C++.
(plantilla de clase) [editar]
Implementación del algoritmo de búsqueda Boyer-Moore.
(plantilla de clase) [editar]
Implementación del algoritmo de búsqueda Boyer-Moore-Horspool.
(plantilla de clase) [editar]

[editar] Envoltorios de referencias

Los envoltorios de referencias admiten que los argumentos de referencia se almacenen en objetos función copiables:

Envoltorio de referencia CopyConstructible y CopyAssignable.
(plantilla de clase) [editar]
(C++11)(C++11)
Crea un envoltorio de referencia (std::reference_wrapper) con un tipo deducido de su argumento.
(plantilla de función) [editar]
Obtiene el tipo referencia envuelto en std::reference_wrapper.
(plantilla de clase) [editar]

[editar] Objetos función de operador

C++ define varios objetos función que representan operaciones aritméticas y lógicas comunes:

Operaciones aritméticas
Objeto función que implementa x + y
(plantilla de clase) [editar]
Objeto función que implementa x - y
(plantilla de clase) [editar]
Objeto función que implementa x * y
(plantilla de clase) [editar]
Objeto función que implementa x / y.
(plantilla de clase) [editar]
Objeto función que implementa x % y
(plantilla de clase) [editar]
Objeto función que implementa -x
(plantilla de clase) [editar]
Comparaciones
Objeto función que implementa x == y.
(plantilla de clase) [editar]
Objeto función que implementa x != y.
(plantilla de clase) [editar]
Objeto función que implementa x > y.
(plantilla de clase) [editar]
Objeto función que implementa x < y.
(plantilla de clase) [editar]
Objeto función que implementa x >= y.
(plantilla de clase) [editar]
Objeto función que implementa x <= y
(plantilla de clase) [editar]
Operaciones lógicas
Objeto función que implementa x && y.
(plantilla de clase) [editar]
Objeto función que implementa x || y.
(plantilla de clase) [editar]
Objeto función que implementa !x.
(plantilla de clase) [editar]
Operaciones a nivel de bits
Objeto función que implementa x & y.
(plantilla de clase) [editar]
Objeto función que implementa x | y.
(plantilla de clase) [editar]
Objeto función que implementa x ^ y.
(plantilla de clase) [editar]
(C++14)
Objeto función que implementa ~x.
(plantilla de clase) [editar]

[editar] Objetos función de comparación restringido

C++20 define un conjunto de objetos función de comparación restringidos. Los operadores de igualdad (ranges::equal_to y ranges::not_equal_to) requieren que los tipos de los argumentos modelen equality_comparable_with. Los operadores relacionales (ranges::less, ranges::greater, ranges::less_equal, y ranges::greater_equal) requieren que los tipos de los argumentos modelen totally_ordered_with. El operador de comparación de tres vías (compare_three_way) requiere que el tipo modele three_way_comparable_with.

Objeto función que implementa x == y.
(clase) [editar]
Objeto función que implementa x != y.
(clase) [editar]
Objeto función que implementa x < y.
(clase) [editar]
Objeto función que implementa x > y.
(clase) [editar]
Objeto función que implementa x <= y.
(clase) [editar]
Objeto función que implementa x >= y.
(clase) [editar]
Objeto función que implementa x <=> y
(clase) [editar]

[editar] Vinculadores y adaptadores antiguos

Varias utilerías que proporcionaban apoyo funcional en el pasado están obsoletas en C++11 y se eliminaron en C++17 (los negadores antiguos se hicieron obsoletos en C++17 y se eliminaron en C++20):

Base
(en desuso en C++11)(eliminado en C++17)
Clase base de función unaria compatible con un adaptador.
(plantilla de clase) [editar]
(en desuso en C++11)(eliminado en C++17)
Clase base compatible con un adaptador de función binaria.
(plantilla de clase) [editar]
Vinculadores
(en desuso en C++11)(eliminado en C++17)
Objeto función que mantiene una función binaria y uno de sus argumentos.
(plantilla de clase) [editar]
(en desuso en C++11)(eliminado en C++17)
Vincula un argumento a una función binaria.
(plantilla de función) [editar]
Adaptadores de función
(en desuso en C++11)(eliminado en C++17)
Envoltorio compatible con un adaptador para un puntero a función unaria.
(plantilla de clase) [editar]
(en desuso en C++11)(eliminado en C++17)
Envoltorio compatible con un adaptador para un puntero a función binaria.
(plantilla de clase) [editar]
(en desuso en C++11)(eliminado en C++17)
Crea un envoltorio de objeto función compatible con un adaptador de un puntero a función
(plantilla de función) [editar]
(en desuso en C++11)(eliminado en C++17)
Envoltorio para un puntero a una función nularia o función miembro unaria, que puede ser llamado con un puntero a un objeto.
(plantilla de clase) [editar]
(en desuso en C++11)(eliminado en C++17)
Crea un envoltorio de un puntero a función miembro, que puede ser llamado con un puntero a un objeto.
(plantilla de función) [editar]
Envoltorio para un puntero a una función nularia o función miembro unaria, que puede ser llamado con una referencia a un objeto.
(plantilla de clase) [editar]
(en desuso en C++11)(eliminado en C++17)
Crea un envoltorio de un puntero a función miembro, que puede ser llamado con una referencia a un objeto.
(plantilla de función) [editar]
(en desuso en C++17)(eliminado en C++20)
Envoltorio de objeto función que devuelve el complemento del predicado unario que mantiene.
(plantilla de clase) [editar]
(en desuso en C++17)(eliminado en C++20)
Envoltorio de objeto función que devuelve el complemento del predicado binario que mantiene.
(plantilla de clase) [editar]
(en desuso en C++17)(eliminado en C++20)
Construye un objeto std::unary_negate personalizado.
(plantilla de función) [editar]
(en desuso en C++17)(eliminado en C++20)
Construye un objeto std::binary_negate personalizado.
(plantilla de función) [editar]