100 Commits
Author SHA1 Message Date
Douglas Gregor a74e72cce9 Make Boost.Function compile under BOOST_NO_EXCEPTIONS.
Fixes #2499
Fixes #2494
Fixes #2469
Fixes #2466


[SVN r51745]
2009-03-13 05:49:02 +00:00
Douglas Gregor 6f8ec5c8c5 Implement an optimization that David Abrahams and myself came up with,
where Boost.Function uses a bit in the vtable pointer to indicate when
the target function object has a trivial copy constructor, trivial
destructor, and fits within the small object buffer. In this case, we
just copy the bits of the function object rather than performing an
indirect call to the manager.

This results in a 60% speedup on a micro-benchmark that copies and
calls such function objects repeatedly.



[SVN r51743]
2009-03-13 05:23:53 +00:00
Douglas Gregor 587658b047 Merge Boost.Function fixes from trunk
[SVN r49361]
2008-10-16 13:21:50 +00:00
Douglas Gregor 8ca7384121 Fix Boost.Function thread safety issue again
[SVN r49326]
2008-10-14 15:31:57 +00:00
Douglas Gregor 75890fea53 CodeGear C++ fix, from Nicola Musatti. Fixes #2325
[SVN r48922]
2008-09-23 00:26:21 +00:00
Douglas Gregor da259e8dce Make MyLargeFunctor large.
[SVN r48633]
2008-09-06 16:30:58 +00:00
Douglas Gregor 2fe4cc253f Fix double-destruction problem with small function objects and swap(), and try to work around a GCC 4.2 issue. See #1910 for comments about the former problem from Niels Dekker.
[SVN r48627]
2008-09-06 03:16:25 +00:00
Douglas Gregor f379ef8532 Make Boost.Function's target() operation respect the cv-qualifiers of referenced function objects. Fixes #736
[SVN r48618]
2008-09-05 17:52:12 +00:00
Douglas Gregor ea18f5777b Add Boost.Typeof support to Boost.Function. Fixes #1621
[SVN r48616]
2008-09-05 16:13:49 +00:00
Douglas Gregor d5a86a2d52 Improve the performance of Boost.Function's swap. Thanks to Niels Dekker for the original patch. Fixes #1910
[SVN r48615]
2008-09-05 15:43:22 +00:00
Douglas Gregor e3dfa7268a Add forward-declaration header for Boost.Function. Fixes #1668
[SVN r48613]
2008-09-05 14:55:34 +00:00
Douglas Gregor 83309a36c7 Merge Boost.Function from the trunk
[SVN r47422]
2008-07-14 18:32:29 +00:00
Douglas Gregor bacb5d6752 Attempt to work around problem with allocator casts in Boost.Function
[SVN r46446]
2008-06-17 13:59:04 +00:00
Douglas Gregor 04040ae566 Improve documentation on the size/efficiency of boost::function objects
[SVN r44852]
2008-04-28 14:11:46 +00:00
Douglas Gregor 0936dbdd03 Add missing include for is_void
[SVN r44030]
2008-04-04 12:26:53 +00:00
Douglas Gregor adb7b0a214 Change Boost.Function allocator behavior, from Emil Dotchevski
[SVN r43884]
2008-03-27 19:44:37 +00:00
Douglas Gregor bfdb5b161d Merged fixes for Function, Signals, and MPI from trunk. See #1499, see #1416, see #1486
[SVN r42031]
2007-12-14 14:48:14 +00:00
Douglas Gregor cead36cd5b Disable more Visual C++ warnings in Function headers. Fixes #1416
[SVN r41798]
2007-12-06 18:39:06 +00:00
Douglas Gregor 81e558491b Merge lots of copyrights
[SVN r40811]
2007-11-05 21:22:29 +00:00
Douglas Gregor 53b95c386d Finalizes the fix to Bug #1260, making vtable_base an actual POD type (oops)
and playing more nicely with reinterpret_cast (thanks to Brad King for the
fixes).



[SVN r39285]
2007-09-14 21:05:46 +00:00
Douglas Gregor 3312c7ffcd function_template.hpp:
- Pass-by-reference internally, when we can. Fixes #1067



[SVN r39244]
2007-09-13 19:06:53 +00:00
Douglas Gregor de27ae9697 function/function_base.hpp, function/function_template.hpp:
- Switch from dynamic initialization of the vtable pointer to static
    initialization (Fixes #1260)
  - Handle member pointers properly, only using mem_fn within the invoker
    to deal with all of the messy bits of calling member pointers



[SVN r39240]
2007-09-13 17:38:58 +00:00
Douglas Gregor a7b9940f15 Handle GCC's -fno-exceptions properly. Fixes #1198
[SVN r39061]
2007-08-29 19:06:11 +00:00
Douglas Gregor e4f165a4e8 Disable MSVC warning about native code generation. Fixes #1163
[SVN r39060]
2007-08-29 18:59:16 +00:00
Douglas Gregor 80a3f47099 Committed patch to eliminate warnings with GCC's -Wundef. Fixes #1197
[SVN r38827]
2007-08-21 15:35:19 +00:00
Douglas Gregor 5c514ebe35 Try to work around EC++4 bug
[SVN r37471]
2007-04-18 12:13:53 +00:00
Douglas Gregor 47033bd162 Fix inspection problems
[SVN r35827]
2006-11-03 19:41:10 +00:00
Douglas Gregor 64c8d10fa8 Eliminate MSVC 8.0 warning
[SVN r35588]
2006-10-13 14:29:56 +00:00
Douglas Gregor c7d5016022 Eliminate MSVC 8.0 warning
[SVN r35588]
2006-10-13 14:29:56 +00:00
Douglas Gregor d92355cca2 Suppress annoying MSVC warnings
[SVN r35424]
2006-09-29 17:23:28 +00:00
Douglas Gregor 0123f84bff Suppress annoying MSVC warnings
[SVN r35423]
2006-09-29 17:23:17 +00:00
Douglas Gregor 9fe1351ab7 Workaround for Borland compilers, from Alistair
[SVN r32394]
2006-01-24 13:57:25 +00:00
Douglas Gregor f195b6c10a Fixes for GCC 2.95.3
[SVN r32319]
2006-01-13 19:32:58 +00:00
Douglas Gregor 2b4f81ca67 Workaround for GCC 2.95.3
[SVN r32302]
2006-01-13 02:45:33 +00:00
Douglas Gregor 78f6b385d5 Small buffer optimization for Boost.Function
[SVN r32282]
2006-01-10 23:52:35 +00:00
Douglas Gregor 93c691fbdf function_base.hpp, function_template.hpp:
- Use a vtable instead of separate manager/invoker pointers, to shrink the
    size of a boost::function object to 8 bytes
  - Fix a problem with NULL member pointers


[SVN r32186]
2005-12-30 02:31:51 +00:00
Douglas Gregor c5e64fab99 BOOST_CRITICAL_ERROR is no longer usable
[SVN r32185]
2005-12-30 02:27:13 +00:00
Douglas Gregor 944c2ea72a Merged from Version_1_33_1
[SVN r31949]
2005-12-08 03:23:02 +00:00
Douglas Gregor b5b12295c2 Try to work around Borland parsing bug
[SVN r30645]
2005-08-24 14:12:03 +00:00
Douglas Gregor eea010ef80 Fully-qualify detail namespace accesses to work around compiler bugs
[SVN r30627]
2005-08-22 12:55:34 +00:00
Douglas Gregor b8ef34c043 Merged from 1.33.0 release
[SVN r30540]
2005-08-12 13:02:37 +00:00
Douglas Gregor 8b816138bc Fix tests for compilers that actually have a real is_stateless
[SVN r28784]
2005-05-10 13:30:35 +00:00
Douglas Gregor 24ce3091d0 Peter Dimov's ADL workarounds
[SVN r27808]
2005-03-24 19:13:33 +00:00
Douglas Gregor 354b8b802e Test use of function_equal
[SVN r27733]
2005-03-18 05:01:49 +00:00
Douglas Gregor db089615a2 Be more precise about EqualityComparable and function_equal
[SVN r27732]
2005-03-18 04:54:32 +00:00
Douglas Gregor dc61dc6dc8 Fix for Borland, from Tobias Schwinger
[SVN r26886]
2005-01-28 07:04:32 +00:00
Douglas Gregor d0fe22e9bf Use bold element now
[SVN r26820]
2005-01-23 16:23:09 +00:00
Douglas Gregor e2a7fea741 Workarounds for CW 9.2, from Reece Dunn
[SVN r26583]
2004-12-26 22:05:19 +00:00
Douglas Gregor e14e57a678 Fix BOOST_NO_VOID_RETURNS workaround
[SVN r26518]
2004-12-15 21:40:30 +00:00
Douglas Gregor fdbbc2b3ff Doug Gregor->Douglas Gregor
[SVN r24018]
2004-07-25 02:59:30 +00:00
Douglas Gregor 520ee97c82 Doug Gregor -> Douglas Gregor
[SVN r24016]
2004-07-25 02:29:29 +00:00
Douglas Gregor e4f632e5ca function_template.hpp: Move definition of operator() out-of-line for
any compiler that isn't VC++ 6.0 (Vladimir Prus)


[SVN r23436]
2004-07-11 03:09:35 +00:00
Douglas Gregor 5b4dc38727 boost/function/function_base.hpp:
- Work around a GCC <= 3.3 bug where the return type of a function template
    that cannot possibly match is instantiated when it should not be, causing
    errors in the use of operator==. This results in slightly reduced
    functionality.

libs/function/test/contains_test.cpp:
  - Don't test that which GCC cannot now handle


[SVN r23170]
2004-06-23 16:00:01 +00:00
Douglas Gregor 22fd23b00f function_template.hpp, function_base.hpp:
- Comparison operators are now written in terms of function_base so that
    implicit conversions to function<...> or functionN<...> don't allow
    arbitrary comparisons.


[SVN r23126]
2004-06-20 05:32:28 +00:00
Douglas Gregor ae11f21513 Try to make IBM VisualAge C++ 6 happy
[SVN r22795]
2004-05-12 00:39:00 +00:00
Douglas Gregor dc14c35c38 function_base.hpp:
- Fix silly typo where it returned "false" instead of the NULL
    pointer.


[SVN r22760]
2004-05-07 11:43:41 +00:00
Douglas Gregor 1b27dc8f86 Fix some shadow warnings
[SVN r22670]
2004-04-20 00:32:48 +00:00
Douglas Gregor 2c0e633307 Added contains() and function_equal()
[SVN r22483]
2004-03-12 03:38:20 +00:00
Douglas Gregor e80a00545c Added FAQ entry from Matt Hurd about boost::function overhead.
[SVN r22309]
2004-02-18 06:37:13 +00:00
Douglas Gregor 1a142a2f94 Fix on GCC 2.9x from Ralf
[SVN r22249]
2004-02-12 22:48:22 +00:00
Douglas Gregor f0c5e5e95b Work around a GCC 2.95.3 bug triggered by the workaround to a VC++ 7.1 bug...
[SVN r22242]
2004-02-11 18:16:55 +00:00
Douglas Gregor 2fb242eae1 Work around CLR bug in .NET 2003
[SVN r22234]
2004-02-11 04:26:53 +00:00
Douglas Gregor 03c7fdcf37 Fix the documentation of empty() (Angus Leeming)
[SVN r22193]
2004-02-08 00:11:22 +00:00
Douglas Gregor b7608dff24 type_info::operator== fixes (Peter Dimov)
[SVN r22083]
2004-01-30 17:15:03 +00:00
Douglas Gregor 5f0426a80d Stupid deprecated XInclude namespace
[SVN r22013]
2004-01-28 01:31:00 +00:00
Douglas Gregor fdb37c35ff Some aesthetic tweaks
[SVN r21905]
2004-01-25 01:17:35 +00:00
Douglas Gregor b7650282df tutorial.xml: Add short discussion of the comparison of Boost.Function
objects to function objects.


[SVN r21904]
2004-01-25 01:15:57 +00:00
Douglas Gregor c5d8d03b76 libs/function/doc/reference.xml:
- Document target() member function
  - Documented new comparison operators

libs/function/doc/tests.xml: Include contains_test.cpp
libs/function/doc/function.xml: Use the new XInclude name


[SVN r21903]
2004-01-25 00:38:26 +00:00
Douglas Gregor 746676d274 Fix semantics for comparison against reference_wrappers
[SVN r21901]
2004-01-24 23:31:40 +00:00
Douglas Gregor c31ad8700e Cast pointers, not lvalues
[SVN r21897]
2004-01-24 18:29:18 +00:00
Douglas Gregor cb1bcd5410 "contains" -> "target"
[SVN r21845]
2004-01-20 18:07:13 +00:00
Douglas Gregor 7d30d98efd boost/function/function_template.hpp, boost/function/function_base.hpp:
- Added "contains" member function to extract a pointer to the target
    function object if you know its type
  - Added operator== that can compare a Boost.Function object against a
    function object

libs/function/test/Jamfile, libs/function/test/contains_test.cpp:
  - Test contains() and equality comparison operators


[SVN r21844]
2004-01-20 18:02:02 +00:00
Douglas Gregor 50ff886c81 MSVC 7.1 can handle Function, preferred syntax
[SVN r21333]
2003-12-19 03:33:25 +00:00
Douglas Gregor 44e986afe3 Switch over to the new enable_if library
[SVN r21143]
2003-12-04 22:31:09 +00:00
Douglas Gregor 4bb90aae7a Metrowerks CodeWarrior 8.3 doesn't seem to support SFINAE
[SVN r21141]
2003-12-04 22:06:56 +00:00
Douglas Gregor 04eb767238 Possible fix for Metrowerks
[SVN r21126]
2003-12-03 19:55:57 +00:00
Douglas Gregor 8abd32bd81 Clean up warnings on Borland C++ 5.5
[SVN r21095]
2003-12-03 01:21:32 +00:00
Douglas Gregor 3f753feb4d Use the "minimal" test tools, to simplify my life a bit
[SVN r20924]
2003-11-23 16:17:24 +00:00
Douglas Gregor b09e7f3d3d Fix & regenerate sum_avg_portable.cpp
[SVN r20402]
2003-10-17 16:25:51 +00:00
Douglas Gregor 2c708069e8 Answer the eternal operator== question.
[SVN r20356]
2003-10-12 16:02:26 +00:00
Douglas Gregor b8d943ec27 Move to the "new" function<> syntax. He he.
[SVN r20320]
2003-10-09 05:00:38 +00:00
Douglas Gregor 8c8f072d09 Update license to the new Boost license (yay!)
[SVN r20235]
2003-10-01 04:10:37 +00:00
Douglas Gregor fad40732a9 function_template.hpp: Works around an annoying bug in one of Apple's
3.3 compilers.


[SVN r20233]
2003-10-01 03:40:35 +00:00
Douglas Gregor 66cd32b565 NULL pointers can be of any integral type, not just int (Howard Hinnant)
[SVN r19989]
2003-09-10 04:16:17 +00:00
Douglas Gregor 4b830024f3 Die, foo, die
[SVN r19205]
2003-07-19 06:53:21 +00:00
Douglas Gregor 40c9bb204e Me commit bad code
[SVN r19195]
2003-07-18 16:18:16 +00:00
Douglas Gregor 5347683c8e Remove return statement from operator new to see who screams about it
[SVN r19178]
2003-07-18 04:17:30 +00:00
Douglas Gregor 1ef5f459e2 sig needs to be a friend of functionN
[SVN r19174]
2003-07-18 03:48:17 +00:00
Douglas Gregor cb3c1b0d1e doc/tutorial.xml: fix a typo in the example code (thanks Jens!)
test/sum_avg_portable.cpp: regenerated.


[SVN r19136]
2003-07-16 04:40:25 +00:00
Douglas Gregor 1a6d95733a Get rid of a warning in GCC 3.3.
[SVN r19069]
2003-07-11 17:42:12 +00:00
Douglas Gregor 2c8fc1b31f add macro BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX
[SVN r19056]
2003-07-11 16:00:29 +00:00
Douglas Gregor a753dbc048 Jamfile.v2: Jamfile for Boost.Function documentation
[SVN r18244]
2003-04-13 14:51:26 +00:00
Douglas Gregor ce00e49978 Newer Borland compiler still does not handle enable_if
[SVN r18064]
2003-03-23 16:58:05 +00:00
Douglas Gregor eeb15caff2 Document nested class template "sig"
[SVN r17946]
2003-03-16 02:00:20 +00:00
Douglas Gregor ade6c96d5c Updated to reflect BoostBook changes
[SVN r17941]
2003-03-15 23:12:35 +00:00
Douglas Gregor b54e9df555 Lots of cleanups as BoostBook becomes more strict
[SVN r17871]
2003-03-13 00:29:57 +00:00
Douglas Gregor eb14b70c9c Move away from attributes, toward elements
[SVN r17869]
2003-03-13 00:08:34 +00:00
Douglas Gregor 48e2bc0bdb Import of BoostBook documentation for any, array, bind, function, ref, and
signals libraries.


[SVN r17866]
2003-03-12 23:27:25 +00:00
Douglas Gregor 652955dee5 The old HTML Function documentation has been removed. The file index.html
redirects to $BOOST_ROOT/doc/html/function.html, the new home for the Function
library documentation


[SVN r17467]
2003-02-17 04:43:49 +00:00
Douglas Gregor a44c07104c Regenerated, with function_test renamed to lib_function_test
[SVN r17420]
2003-02-14 18:15:01 +00:00