Compartir a través de


<functional>

Define las funciones de biblioteca de plantillas estándar (STL) que ayudan a construir objetos function, también conocido como funtores y sus carpetas.Una función es un objeto de un tipo que define operator().Un objeto de función puede ser un puntero a función, pero por lo general, el objeto se utiliza para almacenar información adicional que se puede tener acceso durante una llamada de función.

#include <functional>

Comentarios

Los algoritmos requieren dos tipos de objetos de función: unario y binario.Los objetos de función unario requieren un argumento y objetos binarios de función requieren dos argumentos.Un objeto de función y punteros a función se pueden pasar como un predicado a un algoritmo, pero los objetos de función también son adaptables y aumentar el alcance, flexibilidad y eficiencia de la STL.Si, por ejemplo, un valor necesario para enlazarse a una función antes de pasarlo a un algoritmo, un puntero a función no puede utilizarse.Adaptadores de la función conversión punteros a función en objetos de función adaptable que se pueden enlazar a un valor.El encabezado <functional> También contiene los adaptadores de función miembro que permiten las funciones de miembro que se llamará como objetos function adaptable.Las funciones son adaptables si tienen las declaraciones de tipo anidado especificando su argumento y tipos de valor devueltos.El estándar de C++ requiere que se aplique esta capacidad de adaptación al tener todas las clases de objeto estándar heredan de las clases de base de unary_function o binary_function.Objetos de función y sus adaptadores permiten la STL actualizar las aplicaciones existentes y ayudar a integrar la STL en el entorno de programación de C++.

Extensiones TR1

En la aplicación de Visual C++ de TR1 se agregan las siguientes características:

  • A llamar a la firma es el nombre de un tipo de valor devuelto seguido de una lista separada por comas entre paréntesis de cero o más tipos de argumento.

  • A llamar al contenedor es un objeto de un tipo de contenedor de llamada.

  • A tipo de contenedor de llamada es un tipo que contiene un objeto que se puede llamar y admite una operación de llamada que reenvía a ese objeto.

  • A objeto que se puede llamar es un objeto de un tipo que se puede llamar.

  • A tipo que se puede llamar es un puntero a función, un puntero a función miembro, un puntero a miembro de datos o un tipo de clase cuyos objetos pueden aparecer inmediatamente a la izquierda de un operador de llamada de función.

  • A objeto de destino es el objeto que se puede llamar mantenido por un objeto de contenedor de llamada.

El pseudo-function INVOKE(f, t1, t2, ..., tN) debido a una de las siguientes acciones:

  • (t1.*f)(t2, ..., tN)Cuando f es un puntero a función miembro de la clase T y t1 es un objeto de tipo T o una referencia a un objeto de tipo T o una referencia a un objeto de un tipo derivado de T.

  • ((*t1).*f)(t2, ..., tN)Cuando f es un puntero a función miembro de la clase T y t1 no es uno de los tipos descritos en el elemento anterior.

  • t1.*fCuando f es un puntero a datos de miembros de clase T y t1 es un objeto de tipo T o una referencia a un objeto de tipo T o una referencia a un objeto de un tipo derivado de T.

  • (*t1).*fCuando f es un puntero a datos de miembros de clase de la clase T y t1 no es uno de los tipos descritos en el elemento anterior.

  • f(t1, t2, ..., tN)en todos los demás casos.

El pseudo-function INVOKE(f, t1, t2, ..., tN, R) significa INVOKE(f, t1, t2, ..., tN) se puede convertir implícitamente a R.

Si tiene un contenedor de la llamada a un tipo de resultado débil, el tipo de su tipo de miembro result_type se basa en el tipo de T del objeto de destino del contenedor, como sigue:

  • Si T es un puntero a función, result_type es un sinónimo para el tipo de valor devuelto de T.

  • Si T es un puntero a función miembro, result_type es un sinónimo para el tipo de valor devuelto de T.

  • Si T es un puntero a miembro de datos, result_type es un sinónimo para el tipo declarado del miembro de datos.

  • Si T es un tipo de clase que tiene un tipo de miembro result_type, a continuación, result_type es un sinónimo de T::result_type.

  • De lo contrario, no hay ningún miembro result_type.

Cada contenedor de la llamada tiene un constructor de copias.A contenedor simple llamada es un contenedor de llamada que tiene una asignación de operador y cuyo constructor de copias y el operador de asignación no inicie excepciones.A reenvío de llamada contenedor es un contenedor de llamada que se puede llamar mediante el uso de una lista de argumentos t1, t2, ..., tN, donde cada ti es un valor l.

Los contenedores de llamada definidos en este encabezado función llamada operadores que tienen argumentos de tipos de T1, T2, ..., TN, donde 0 <= N <= NMAX.En esta implementación, el valor de NMAX es de 10.

169de7b0.collapse_all(es-es,VS.110).gifClases

bad_function_call

Una clase que describe una excepción para indicar que una llamada a operator() en un función error del objeto porque el objeto estaba vacío.

binary_negate

Una clase de plantilla que proporciona una función miembro que niega el valor devuelto de una función binario especificado.

binder1st

Una clase de plantilla que proporciona un constructor que convierte un objeto binario de función en un objeto de función unario enlazando el primer argumento de la función de binario a un valor especificado.

binder2nd

Una clase de plantilla que proporciona un constructor que convierte un objeto binario de función en un objeto de función unario enlazando el segundo argumento de la función de binario a un valor especificado.

const_mem_fun_ref_t

Una clase de adaptador que permite una función miembro const que no toma argumentos que se llamará como un objeto de función unario cuando se inicializa con un argumento de referencia.

const_mem_fun_t

Una clase de adaptador que permite una función miembro const que no toma argumentos que se llamará como un objeto de función unario cuando se inicializa con un argumento de puntero.

const_mem_fun1_ref_t

Una clase de adaptador que permite una función miembro const que toma un solo argumento que se llamará como un objeto de función binario cuando se inicializa con un argumento de referencia.

const_mem_fun1_t

Una clase de adaptador que permite una función miembro const que toma un solo argumento que se llamará como un objeto de función binario cuando se inicializa con un argumento de puntero.

función

Una clase que contenga un objeto que se puede llamar.

hash

Una clase que calcula un código hash para un valor.

is_bind_expression

Una clase que comprueba si se genera un tipo determinado mediante una llamada a bind.

is_placeholder

Una clase que comprueba si un tipo determinado es un marcador de posición.

mem_fun_ref_t

Una clase de adaptador que permite un non_const función de miembro que no toma argumentos que se llamará como un objeto de función unario cuando se inicializa con un argumento de referencia.

mem_fun_t

Una clase de adaptador que permite un non_const función de miembro que no toma argumentos que se llamará como un objeto de función unario cuando se inicializa con un argumento de puntero.

mem_fun1_ref_t

Una clase de adaptador que permite un non_const función de miembro que toma un solo argumento que se llamará como un objeto de función binario cuando se inicializa con un argumento de referencia.

mem_fun1_t

Una clase de adaptador que permite un non_const función de miembro que toma un solo argumento que se llamará como un objeto de función binario cuando se inicializa con un argumento de puntero.

pointer_to_binary_function

Convierte un puntero a función binaria en una función binaria adaptable.

pointer_to_unary_function

Convierte un puntero a función unario en una función unario adaptable.

reference_wrapper

Una clase que contenga una referencia.

result_of

Una estructura que contiene el tipo de valor devuelto de un objeto que se puede llamar ajustado.

unary_negate

Una clase de plantilla que proporciona una función miembro que niega el valor devuelto de una función unario especificado.

169de7b0.collapse_all(es-es,VS.110).gifFunciones

bind

Argumentos se enlaza a un objeto que se puede llamar.

bind1st

Función de la plantilla de aplicación auxiliar que crea un adaptador para convertir un objeto binario de función en un objeto de función unario enlazando el primer argumento de la función de binario a un valor especificado.

bind2nd

Función de la plantilla de aplicación auxiliar que crea un adaptador para convertir un objeto binario de función en un objeto de función unario enlazando el segundo argumento de la función de binario a un valor especificado.

bit_and

Devuelve el operador AND binario de los dos parámetros.

bit_or

Devuelve la operación OR binaria de los dos parámetros.

bit_xor

Devuelve la operación XOR binaria de los dos parámetros.

cref

Construye un const reference_wrapper desde un argumento.

mem_fn

Genera un contenedor simple llamada.

mem_fun

Funciones de plantilla de aplicación auxiliar utilizadas para crear adaptadores de objeto de función para las funciones de miembro cuando se inicializaron con argumentos de puntero.

mem_fun_ref

Una función de plantilla auxiliar que se utiliza para construir los adaptadores de objeto de función para las funciones de miembro cuando se inicializaron con argumentos de referencia.

not1

Devuelve el complemento de un predicado unario.

pueden2

Devuelve el complemento de un predicado binario.

ptr_fun

Auxiliar plantilla utiliza una función para convertir unario y binario función punteros, respectivamente, en las funciones de adaptables unario y binario.

ref

Construye un reference_wrapper desde un argumento.

swap

Intercambia dos function objetos.

169de7b0.collapse_all(es-es,VS.110).gifStructs

binary_function

Una clase base vacía que define los tipos que se pueden heredar la clase derivada que proporciona un objeto binario de función.

divide

La clase proporciona un objeto de función predefinida que realiza la operación aritmética de división en los elementos de un tipo de valor especificado.

equal_to

Un predicado binario que comprueba si un valor de un tipo especificado es igual a otro valor de ese tipo.

mayor

Un predicado binario que comprueba si un valor de un tipo especificado es mayor que otro valor de ese tipo.

greater_equal

Un predicado binario que comprueba si un valor de un tipo especificado es mayor o igual a otro valor de ese tipo.

menos

Un predicado binario que comprueba si un valor de un tipo especificado es menor que otro valor de ese tipo.

less_equal

Un predicado binario que comprueba si un valor de un tipo especificado es menor o igual a otro valor de ese tipo.

logical_and

La clase proporciona un objeto de función predefinida que realiza la operación lógica de combinación en elementos de un tipo de valor especificado y las pruebas de la verdad o falsedad del resultado.

logical_not

La clase proporciona un objeto de función predefinida que realiza la operación de negación lógica en elementos de un tipo de valor especificado y las pruebas de la verdad o falsedad del resultado.

logical_or

La clase proporciona un objeto de función predefinida que realiza la operación de disyunción lógica en elementos de un tipo de valor especificado y las pruebas de la verdad o falsedad del resultado.

signo menos

La clase proporciona un objeto de función predefinida que realiza la operación de resta aritmética de los elementos de un tipo de valor especificado.

modulus

La clase proporciona un objeto de función predefinida que realiza la operación aritmética de módulo en los elementos de un tipo de valor especificado.

Multiplica

La clase proporciona un objeto de función predefinida que realiza la operación de multiplicación aritmética de los elementos de un tipo de valor especificado.

anular

La clase proporciona un objeto de función predefinida que devuelve el valor negativo de un valor de elemento.

Not_Equal_To

Un predicado binario que comprueba si un valor de un tipo especificado no es igual a otro valor de ese tipo.

Plus

La clase proporciona un objeto de función predefinida que realiza la operación aritmética de la adición de elementos de un tipo de valor especificado.

unary_function

Una clase base vacía que define los tipos que se pueden heredar la clase derivada que proporciona un objeto de función unario.

169de7b0.collapse_all(es-es,VS.110).gifObjetos

_1

Marcadores de posición para los argumentos que puede reemplazables.

169de7b0.collapse_all(es-es,VS.110).gifOperadores

operador ==

No permite la comparación de igualdad de objetos que se puede llamar.

operador! =

Impide la ejecución de comparación de desigualdad de los objetos que se puede llamar.

Vea también

Referencia

Seguridad para subprocesos de la biblioteca estándar de C++

Biblioteca de plantillas estándar

Otros recursos

miembros de <funcional>

Archivos de encabezado