Reference
C Library
IOstream Library
Strings library
STL Containers
STL Algorithms
Miscellaneous
Miscellaneous
complex
exception
functional
iterator
limits
locale
memory
new
numeric
stdexcept
typeinfo
utility
valarray
functional
binary_function
unary_function
operator classes:
divides
equal_to
greater
greater_equal
less
less_equal
logical_and
logical_not
logical_or
minus
modulus
multiplies
negate
not_equal_to
plus
adaptor functions:
bind1st
bind2nd
mem_fun
mem_fun_ref
not1
not2
ptr_fun
types:
binary_negate
binder1st
binder2nd
const_mem_fun1_ref_t
const_mem_fun1_t
const_mem_fun_ref_t
const_mem_fun_t
mem_fun1_ref_t
mem_fun1_t
mem_fun_ref_t
mem_fun_t
pointer_to_binary_function
pointer_to_unary_function
unary_negate


functional

header

Function objects

Function objects are objects specifically designed to be used with a syntax similar to that of functions. In C++, this is achieved by defining member function operator() in their class, like for example:
1
2
3
4
struct myclass {
  int operator()(int a) {return a;}
} myobject;
int x = myobject (0);           // function-like syntax with object myobject 


They are especially useful as predicates or comparison functions to be used with standard algorithms.
The standard library provides standard definitions for several function objects and some ways to modify and adapt their behavior in header <functional>:

Base classes:

Operator classes


Arithmetic operations:

Comparison operations:

Logical operations:

Adaptor and conversion functions

Negators
Parameter binders
Conversors

Instrumental types