- Updated any_pointer and manager classes to deal with member function
pointers directly, so no allocation is required when using them.
- Removed include of boost/mem_fn.hpp
function_template.hpp:
- Many macros that were in the functionN.hpp headers have been moved here and
are now generated on-the-fly using BOOST_JOIN
- Added invokers for pointers to member functions
- Revised pointer to member function handling code to not perform any
allocations/deallocations
- Added guards so that multiple inclusion of function_template.hpp will only
include its dependencies once.
functionN.hpp:
- Headers regenerated
[SVN r11729]
function_template.hpp:
- Removed implementation based on virtual functions. Such an implementation
can't meet exception safety requirements made by the manager/invoker
version.
[SVN r11726]
- const function calling semantics changed. Now 'function' has
pointer/reference semantics (constness of 'function' object does not
affect constness of targetted function object)
[SVN r10685]
- Use "self_type" instead of "function" for constructing swapping temporary (Borland C++ needs it)
function_base.hpp:
- Give empty copy constructor, default constructor, and assignment operator to empty_function_mixin (MSVC generates incorrect ones)
function_template.hpp:
- Make Borland C++ and MSVC agree on the code (involves an extra constructor definition and careful use of self_type vs. BOOST_FUNCTION_FUNCTION)
[SVN r10619]
- Use swap() for exception safe assignment operators
function_template.hpp:
- Use swap() for exception safe assignment operators
- Remove BOOST_FUNCTION_BASE class.
- Support copying of mixins. (Richard Crossley)
[SVN r10614]
favor of a common interface. Regardless of the compiler's capabilities, the
result type of a Boost.Function function object that was declared void will
be "unused". This allows the result of a Boost.Function function object to
be passed as a parameter regardless of whether the function is declared as
returning void. It greatly simplifies the use of Boost.Function objects with
wrapper objects (i.e., when the side effects are important, but the result
isn't: consider binding and composition when calling a std::for_each loop)
[SVN r10491]
- Redesigned decision procedure for "is it a function pointer" vs.
"is it an object".
- No longer requires copy constructions of function objects during
assignment or construction.
- Added operator! to boost::function_base instead of relying on
safe_bool conversion.
- BOOST_NO_DEPENDENT_BASE_LOOKUP is now unnecessary
- BOOST_WEAK_CONVERSION_OPERATORS is now unnecessary
- BOOST_WEAK_FUNCTION_TEMPLATE_ORDERING is now unnecessary
[SVN r10481]