Commit Graph

54 Commits

Author SHA1 Message Date
535612ec85 function_base.hpp:
- Use BOOST_WORKAROUND more
  - Borland C++ 5.5 update 2 doesn't support enable_if
  - MSVC 7.0 needs the comparison-with-zero workarounds


[SVN r16636]
2002-12-17 13:50:07 +00:00
a75e20c3ed Support comparisons against 0 on MSVC
[SVN r16618]
2002-12-15 16:05:01 +00:00
b62c8066a3 Forward-declare function_base for use in the allocator
[SVN r16617]
2002-12-15 15:20:28 +00:00
30917e9f6a MIPSpro's library needs to use allocator<function_base>, not allocator<void>
[SVN r16616]
2002-12-15 15:13:51 +00:00
450959d0d7 Use boost/assert.hpp to check (at runtime) if the int passed to Boost.Function's
clearing constructor is zero


[SVN r16614]
2002-12-15 14:54:32 +00:00
4466a7c9c0 function_base.hpp:
- GCC 3.0 and later do support enable_if. Not sure what happened there...
  - Use BOOST_WORKAROUND in some places (more to come...)


[SVN r16612]
2002-12-15 14:45:13 +00:00
b58acb02e3 BOOST_NO_CONFIG -> BOOST_STRICT_CONFIG (Dave Abrahams)
[SVN r16524]
2002-12-05 12:28:19 +00:00
9cf5e8efbe Workaround Sun and HP bugs
[SVN r16511]
2002-12-04 15:54:33 +00:00
17427dfa3b Borland C++ 5.6.0 doesn't handle enable_if
[SVN r16262]
2002-11-15 19:26:39 +00:00
7dcd9cd224 Metrowerks 7.2 can't handle enable_if
[SVN r16226]
2002-11-13 21:00:23 +00:00
79fca4d1b2 MSVC 7.0 broken. Go figure
[SVN r16179]
2002-11-09 21:05:46 +00:00
18d09833f7 Neither MSVC nor Borland can handle enable_if. Big surprise.
[SVN r16177]
2002-11-09 17:16:24 +00:00
5574a6e97d MIPSpro 7.3.1.3m can't support enable_if
[SVN r16175]
2002-11-09 16:26:47 +00:00
17b311cbbd Support assignment from 0, construction from 0, and comparison to zero.
[SVN r16174]
2002-11-09 16:02:47 +00:00
17ded4b8bf - Added sig member template support for Boost.Lambda, with testcase (Michael Hohmuth)
- Removed the assignment-to-zero attempt

- Added bad_function_call exception (using boost::throw_exception)


[SVN r16102]
2002-11-04 18:19:01 +00:00
300fde19a1 namespace name in the MIPSpro workaround corrected
[SVN r15516]
2002-09-25 20:02:31 +00:00
8f578dbc78 function_template.hpp:
- Don't let Borland C++ use class template function

function_base.hpp:
  - Work around freaky MIPSpro bug that affects the Python lib


[SVN r15514]
2002-09-25 18:10:32 +00:00
6c8e07793d function_base.hpp:
- make make_any_pointer inline


[SVN r15500]
2002-09-24 19:27:51 +00:00
8b6f154891 function_base.hpp:
- Don't try to implicitly convert a function pointer to a data pointer

stateless_test.cpp:
  - Don't use the deprecated syntax


[SVN r15499]
2002-09-24 17:28:58 +00:00
f9ae459b2d - Removed everything deprecated in 1.29.0
- Deprecate user use of function_base
- Use the Boost Preprocessor library to make Function scalable to any
  (reasonable) number of arguments
- Make any_pointer a POD (oops)
- Test Boost.Function for 30 arguments
- Remove tests of deprecated features


[SVN r15498]
2002-09-24 17:16:17 +00:00
f36e83fb27 function_base.hpp:
- Remove safe_bool conversion and operator! from class function_base

function_template.hpp:
  - Add safe_bool conversion and operator!
  - operator! returns bool, not safe_bool (Peter Dimov)

reference.html:
  - Document above change


[SVN r15356]
2002-09-16 03:44:18 +00:00
893069311a function_base.hpp:
- Use the BOOST_FUNCTION_SILENT_DEPRECATED macro as a signal to turn off all
    "deprecated" warnings


[SVN r14756]
2002-08-09 14:34:23 +00:00
688df3d137 function_base.hpp:
- Use <boost/pending/ct_if.hpp>

all:
  - Add BOOST_FUNCTION_NO_DEPRECATED macro hackery to get rid of ALL deprecated
    features


[SVN r14685]
2002-08-05 06:19:17 +00:00
694ebbb301 Use built-in deprecation facilities, when available
[SVN r14677]
2002-08-05 03:08:08 +00:00
df34714340 Removed 'truth' template, which isn't needed
[SVN r14060]
2002-05-29 17:27:59 +00:00
d50e9729ea Fixed conflicts in 1.28.0 merge
[SVN r13946]
2002-05-16 02:18:29 +00:00
a3e9eb5db2 Removed tabs
[SVN r13812]
2002-05-10 17:54:40 +00:00
a0b89d0a30 function_base.hpp:
- Workaround for Sun CC


[SVN r13566]
2002-04-26 17:45:53 +00:00
82226cb9d6 Changed IF to ct_if because IF is sometimes used as a macro (ewww)
[SVN r13420]
2002-04-10 04:10:06 +00:00
28984e4f23 function_base.hpp:
- has_empty_target modified to deal only with function objects, and to not
    require pointers to the function objects.

function_template.hpp:
  - Don't use '&' operation on incoming function objects


[SVN r13318]
2002-03-30 18:45:28 +00:00
7b0f465f33 Reverting member function pointer optimization
[SVN r12580]
2002-01-30 15:04:08 +00:00
6882358627 function_base.hpp:
function_template.hpp:
  - Add support for storing member function pointers directly within the
    Boost.Function object, without allocating any extra memory


[SVN r12568]
2002-01-30 04:33:45 +00:00
11187bcf3a function_base.hpp:
- Switch over to using is_reference_wrapper instead of homegrown is_ref
  - Identify stateless function objects

function_template.hpp:
  - Optimize away construction/allocator for stateless function objects.


[SVN r12559]
2002-01-30 01:59:49 +00:00
4f33ea7665 function_base.hpp:
- Fixed for Intel on Windows _and_ MSVC 7.0


[SVN r12472]
2002-01-24 04:06:05 +00:00
51c376c4ee function_base.hpp:
- Fixed for Intel C++, I hope?


[SVN r12469]
2002-01-23 21:17:40 +00:00
58656b40b1 Try to fix for MSVC 7.0
[SVN r12456]
2002-01-23 14:01:28 +00:00
2fa9ee040b Fixes for Intel, added version cutoff for obsolete MWERKS workaround
[SVN r12434]
2002-01-22 13:11:05 +00:00
96f7184528 Untabified
[SVN r12335]
2002-01-17 15:57:13 +00:00
647693dfc9 function_base.hpp:
- 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]
2002-01-13 16:12:26 +00:00
d3daf6db42 Renamed BOOST_MSVC_ONLY to BOOST_FUNCTION_TARGET_FIX
Metrowerks needs the BOOST_FUNCTION_TARGET_FIX workaround


[SVN r12144]
2001-12-24 17:10:47 +00:00
47599fb625 Added inline modifier to trivial_manager -
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]
2001-12-09 12:49:09 +00:00
083767f67a Taking function objects by value instead of as references-to-const. This does not work on MSVC6.5, so the BOOST_MSVC_ONLY macro was added to make them references-to-const for only that compiler.
- 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]
2001-12-05 22:35:32 +00:00
8cbd121969 function_base.hpp:
- 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]
2001-12-03 16:28:33 +00:00
2265421357 General cleanups
[SVN r11791]
2001-11-27 23:11:44 +00:00
b8e4cdab2f function_base.hpp:
- 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]
2001-11-19 20:30:18 +00:00
3f13d39604 function_base.hpp:
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]
2001-11-19 14:52:04 +00:00
08d727df21 Added ability to handle member function pointers natively, e.g.,
boost::function<int, X*, int> f(&X::foo);


[SVN r11393]
2001-10-16 19:23:37 +00:00
1d4282c706 Added support for target_type() member function (returns an std::type_info of
the underlying function object) and casting to retrieve the underyling target.


[SVN r11360]
2001-10-08 13:32:24 +00:00
3ba640809b function.hpp:
- 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]
2001-07-14 19:34:14 +00:00
93ad5963c9 function_base.hpp:
- Changed "RET" to "type" in the IF template metafunction because
	  the GCC source headers define RET as a macro.


[SVN r10509]
2001-07-02 15:25:04 +00:00