- Make manager and functor members of function_base public instead of
protected, because attempt to make HP aCC compile Boost.Function
function_template.hpp:
- HP aCC seems to believe that the functor and manager members inherited from
function_base are inaccessible. So qualify them with the function_base
base class.
[SVN r12298]
without this, some compilers (VC6) generate linker errors,
in any case it is an ODR violation to define this function
in every translation unit.
[SVN r11984]
- Borland C++ no longer requires hacks to make function pointers work
- On any compiler other than MSVC, free functions can be assigned to Boost.Function objects without the explicit '&'
[SVN r11943]
- Add trivial_manager that does nothing but copy object pointers
- Add is_ref to determine if a type is a reference_wrapper
- Add function_obj_ref_tag for reference_wrappers
- Teach get_function_tag about reference_wrappers
function_template.hpp:
- Add assign_to overload for reference_wrappers (these don't throw)
[SVN r11875]
- 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]