If you look at http://www.boost.org/doc/libs/1_47_0/libs/functional/index.html, it says:
The header functional.hpp provides enhancements to the function object
adapters specified in the C++ Standard Library (sections 20.3.5,
through to 20.3.8). The enhancements are principally possible due to
two changes:
- We use the Boost call_traits templates to avoid the problem of references to references, and to improve the efficiency of parameter passing.
- We use two function object traits class templates to avoid the need for ptr_fun with the adapters in this library.
Usage
Using these adapters should be pretty much the same as using the
standard function object adapters; the only differences are that you
need to write boost:: instead of std::, and that you will get fewer
headaches.
No one uses "ptr_fun" anymore (when you have Boost.Bind), so that just leaves dealing with "references to references"
Does that answer your question?