Functional defines a huge number of templates which help construct
function objects which defines operator. Function pointer can be
described by a function object. It stores information which can be
accessed during the functional call.