La cabecera <functional>
Esta cabecera incluye varias definiciones y herramientas que permiten llevar a cabo algunas formas de [[cpp/utility/functional/wp>es:Programación Funcional | wp>es:Programación Funcional]] en C++. Cada uno de los objetos y métodos en la tabla siguiente permite operar con conceptos como funciones de manera similar a como se opera con variables.
En programación funcional en el estilo de C++ se usa una terminología basada en las matemáticas. Un functor o functoide es un objeto (p.ej.: una instancia de una clase) que se comporta como si fuera una función, es decir, si el objeto es f, puede ser invocado con argumentos con la misma notación de una función: x = f (a, b). Una proposición o [[cpp/utility/functional/wp>es:predicado | wp>es:predicado]] es un tipo especial de functoide que determina la veracidad o falsedad de una proposición acerca de su argumento, por ejemplo bool is_even = even (x).
| binary_function | Forma base de un functoide de dos argumentos |
| binary_negate | |
| bind1st | Fija el valor del primer argumento de una función binaria |
| bind2nd | Fija el valor del segundo argumento de una función binaria |
| binder1st | Crea un functoide usando bind1st |
| binder2nd | Crea un functoide usando bind2nd |
| const_mem_fun1_ref_t | |
| const_mem_fun1_t | |
| const_mem_fun_ref_t | |
| const_mem_fun_t | |
| divides | |
| equal_to | Predicado que compara el primer argumento con el segundo para probar la igualdad |
| greater | Predicado que compara si el primer argumento es mayor que el segundo |
| greater_equal | Predicado que compara si el primer argumento es mayor o igual que el segundo |
| less | Predicado que compara si el primer argumento es menor que el segundo |
| less_equal | Predicado que compara si el primer argumento es menor o igual que el segundo |
| logical_and | |
| logical_not | |
| logical_or | |
| mem_fun1_ref_t | |
| mem_fun1_t | |
| mem_fun | Construye un functoide desde una función miembro (con tipo puntero) |
| mem_fun_ref | Construye un functoide desde una función miembro (con tipo referencia) |
| mem_fun_ref_t | |
| mem_fun_t | |
| minus | |
| modulus | |
| multiplies | |
| negate | Predicado que niega un functoide |
| not1 | Niega una función unaria |
| not2 | Niega una función binaria |
| not_equal_to | Predicado que compara si el primer argumento es no-igual que el segundo |
| plus | |
| pointer_to_binary_function | |
| pointer_to_unary_function | |
| ptr_fun | Construye un functoide desde un puntero a función |
| unary_function | |
| unary_negate |
[editar] C++11
En C++11, la cabecera <functional> agrega nuevas capacidades para programación funcional, entre ellas la más importante es un nuevo concepto de functoide genérico llamado std::function<...>, que permite declarar functoides basados en su firma, y std::bind, un envoltorio genérico para convertir functoides binarios a unarios o envolver punteros a función que reemplaza a binary_function y clases similares.