Commit Graph
100 Commits
Author SHA1 Message Date
Douglas Gregor f54bd9f08d function_template.hpp:
- Wrap ICEs in parentheses when used as template arguments


[SVN r16225]
2002-11-13 18:03:55 +00:00
Douglas Gregor 7baa23912d Fix on BCC 5.6.1 (Hugo Duncan)
[SVN r16216]
2002-11-12 22:36:29 +00:00
Douglas Gregor 79fca4d1b2 MSVC 7.0 broken. Go figure
[SVN r16179]
2002-11-09 21:05:46 +00:00
Douglas Gregor 18d09833f7 Neither MSVC nor Borland can handle enable_if. Big surprise.
[SVN r16177]
2002-11-09 17:16:24 +00:00
Douglas Gregor aa2c2520ad Make sure to pass the address of a function to Boost.Function, not the function itself (stupid MSVC)
[SVN r16176]
2002-11-09 17:12:45 +00:00
Douglas Gregor 5574a6e97d MIPSpro 7.3.1.3m can't support enable_if
[SVN r16175]
2002-11-09 16:26:47 +00:00
Douglas Gregor 17b311cbbd Support assignment from 0, construction from 0, and comparison to zero.
[SVN r16174]
2002-11-09 16:02:47 +00:00
Douglas Gregor 4fed545468 function_n_test.cpp:
- Don't test == 0 syntax (it isn't supported)


[SVN r16115]
2002-11-05 14:36:49 +00:00
Douglas Gregor 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
Douglas Gregor 9a09d9e044 index.html: Make valid HTML 4.01
[SVN r15839]
2002-10-10 05:40:42 +00:00
Douglas Gregor 374711d2c6 function_template.hpp:
- function partial specialization now allows assignment to zero
    (for clearing) and comparison against zero (for the empty check)
    (Brad King)

function_test.cpp:
  - Check comparison against zero
  - Check assignment to zero

function_test_fail1.cpp:
function_test_fail2.cpp:
  - Make them fail for the right reasons


[SVN r15803]
2002-10-08 02:32:38 +00:00
Douglas Gregor 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
Douglas Gregor e3386d8e7e Fixes for MSVC 6.0sp5
[SVN r15502]
2002-09-25 03:30:18 +00:00
Douglas Gregor 68d6a1354e function_template.hpp:
- Remove tabs

prologue.hpp:
  - get BOOST_PP_INC


[SVN r15501]
2002-09-24 19:52:56 +00:00
Douglas Gregor 6c8e07793d function_base.hpp:
- make make_any_pointer inline


[SVN r15500]
2002-09-24 19:27:51 +00:00
Douglas Gregor 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
Douglas Gregor 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
Douglas Gregor 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
Douglas Gregor e16a46fbe8 Added argI_type typedefs
Added arity ICE


[SVN r15184]
2002-09-06 18:47:59 +00:00
Douglas Gregor ab1228c279 reference.html:
- Document argI_type typedefs
  - Document arity ICE


[SVN r15183]
2002-09-06 18:47:32 +00:00
Douglas Gregor 1b848e15b7 ? true : false trick, again
[SVN r14892]
2002-08-15 15:15:50 +00:00
Douglas Gregor 3e2a2b6c55 ? true : false hack
[SVN r14874]
2002-08-15 03:22:31 +00:00
Douglas Gregor 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
Douglas Gregor 0db4ad9f55 Attempted Borland fix
[SVN r14709]
2002-08-06 14:20:08 +00:00
Douglas Gregor d59b93384b Report success on Compaq cxx 6.2
[SVN r14697]
2002-08-05 15:07:34 +00:00
Douglas Gregor e837b20127 Report the sad fate of CodeWarrior
[SVN r14696]
2002-08-05 15:05:57 +00:00
Douglas Gregor 39e2be08cb Don't test allocators if they aren't supported
[SVN r14695]
2002-08-05 15:05:34 +00:00
Douglas Gregor 021063eddf Attempted fix for Compaq CXX 6.2
[SVN r14693]
2002-08-05 13:32:25 +00:00
Douglas Gregor 0ff1daa573 Proper HTML, please
[SVN r14690]
2002-08-05 06:29:07 +00:00
Douglas Gregor 8b734dac5a Added Sun CC to the bad side of the syntax table
[SVN r14689]
2002-08-05 06:24:18 +00:00
Douglas Gregor 5010a0beb0 tutorial.html:
- Use tables to show both preferred/compatible syntaxes
  - Include a table describing which syntax is right for each compiler


[SVN r14687]
2002-08-05 06:20:30 +00:00
Douglas Gregor 39687e1a05 Describe BOOST_FUNCTION_NO_DEPRECATED
[SVN r14686]
2002-08-05 06:19:47 +00:00
Douglas Gregor 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
Douglas Gregor 232069aa00 allocator_test.cpp:
- Remove partial specialization-specific code

function_test.cpp:
  - Uses BOOST_FUNCTION_NO_DEPRECATED
  - Use only the new syntax
  - Test the allocator parameter

deprecated_syntax_test.cpp:
  - Test the deprecated syntax


[SVN r14684]
2002-08-05 06:13:32 +00:00
Douglas Gregor 694ebbb301 Use built-in deprecation facilities, when available
[SVN r14677]
2002-08-05 03:08:08 +00:00
Douglas Gregor 837591456f Remove the unused is_not_same
[SVN r14676]
2002-08-05 02:34:02 +00:00
Douglas Gregor 2d8a4b136a Use function_traits in type_traits library
[SVN r14675]
2002-08-05 02:33:26 +00:00
Douglas Gregor 4f5147f96e function.hpp:
- When determining if a type is a function type, don't blindly add a pointer
    but instead use add_pointer


[SVN r14586]
2002-07-24 13:27:49 +00:00
Douglas Gregor 9db8577d16 Removed all of the deprecated parameters and made them variables
[SVN r14578]
2002-07-23 21:57:57 +00:00
Douglas Gregor 2963cb89a8 function_test.cpp: Don't use void() directly because of broken compilers
[SVN r14571]
2002-07-23 13:47:01 +00:00
Douglas Gregor 461e51a592 Expand on the compatibility note
[SVN r14542]
2002-07-19 21:21:56 +00:00
Douglas Gregor 7ad9e2afee Tutorial now describes the new syntax (and the old syntax)
[SVN r14541]
2002-07-19 21:18:01 +00:00
Douglas Gregor e9ce99dede test/function_n_test.cpp:
test/function_test.cpp:
  - Don't use deprecated functions

index.html:
doc/reference.html:
  - Describe deprecations


[SVN r14540]
2002-07-19 20:45:36 +00:00
Douglas Gregor 3264064074 Removed some cruft
Deprecated the 'set' methods


[SVN r14538]
2002-07-19 20:09:29 +00:00
Douglas Gregor 84bdb40567 Don't test new syntax if partial specialization is unavailable
[SVN r14536]
2002-07-19 19:42:25 +00:00
Douglas Gregor a0bd17560f Don't fail on compilers without partial specialization (but don't allow the new syntax either)
[SVN r14535]
2002-07-19 19:41:53 +00:00
Douglas Gregor 97f72b7f8b Don't try to use function types inline for those silly compilers that can't handle it (e.g., Borland C++ 5.5.1)
[SVN r14534]
2002-07-19 19:17:14 +00:00
Douglas Gregor fca8413df6 Support for Borland C++ 5.5.1
[SVN r14533]
2002-07-19 19:16:33 +00:00
Douglas Gregor fff815d58b allocator_test.cpp:
function_test.cpp:
  - Test out the new function syntax


[SVN r14532]
2002-07-19 18:31:41 +00:00
Douglas Gregor 9e49833a8c function.hpp:
- Support Peter Dimov's rockin' new syntax:
      function<string (int x, double y, float z)> f;


[SVN r14531]
2002-07-19 18:30:48 +00:00
Douglas Gregor df34714340 Removed 'truth' template, which isn't needed
[SVN r14060]
2002-05-29 17:27:59 +00:00
Douglas Gregor d50e9729ea Fixed conflicts in 1.28.0 merge
[SVN r13946]
2002-05-16 02:18:29 +00:00
Douglas Gregor e975d1e0c2 Lambda is now a Boost library
[SVN r13831]
2002-05-13 12:33:19 +00:00
Douglas Gregor a3e9eb5db2 Removed tabs
[SVN r13812]
2002-05-10 17:54:40 +00:00
Douglas Gregor 57ee7e962a function.hpp:
- Remove default parameters in real_get_function_impl (Fixed Borland C++
    Builder 6)


[SVN r13595]
2002-04-30 20:05:32 +00:00
Douglas Gregor 48943fec83 Removed some unused macros
[SVN r13594]
2002-04-30 19:41:37 +00:00
Douglas Gregor a0b89d0a30 function_base.hpp:
- Workaround for Sun CC


[SVN r13566]
2002-04-26 17:45:53 +00:00
Douglas Gregor 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
Douglas Gregor 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
Douglas Gregor 02f5d9d0e0 reference.html:
- Document non-voidness of result_type when on a broken compiler


[SVN r12616]
2002-02-01 02:55:22 +00:00
Douglas Gregor 1774c0646d function_template.hpp:
- Handle compilers without void returns in a sensible manner


[SVN r12615]
2002-02-01 02:51:48 +00:00
Douglas Gregor 4b430a5414 function_template.hpp:
- Make functionN<void, ...> really have a void return value


[SVN r12613]
2002-01-31 22:56:16 +00:00
Douglas Gregor 7b0f465f33 Reverting member function pointer optimization
[SVN r12580]
2002-01-30 15:04:08 +00:00
Douglas Gregor 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
Douglas Gregor 39f6d34db8 reference.html:
- Document exception behavior of assignments/construction from stateless
    objects
  - Document what the term "stateless" means in this context


[SVN r12567]
2002-01-30 03:54:18 +00:00
Douglas Gregor 812ef599bd function_template.hpp:
- Fix unused parameter warning


[SVN r12565]
2002-01-30 03:39:44 +00:00
Douglas Gregor 8c198b1c90 function_template.hpp:
- Ensure initialization of stateless function objects


[SVN r12561]
2002-01-30 03:18:15 +00:00
Douglas Gregor 5a07d4b262 regression.cfg:
- Add stateless_test


[SVN r12560]
2002-01-30 03:17:40 +00:00
Douglas Gregor 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
Douglas Gregor aaa7f61b9e stateless_test.cpp:
- Test function's ability to optimize away allocations for stateless function
    objects


[SVN r12557]
2002-01-30 01:58:28 +00:00
Douglas Gregor a250f9c140 Lots of documentation fixes - thanks Dave
[SVN r12505]
2002-01-25 15:00:37 +00:00
Douglas Gregor 4f33ea7665 function_base.hpp:
- Fixed for Intel on Windows _and_ MSVC 7.0


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


[SVN r12469]
2002-01-23 21:17:40 +00:00
Douglas Gregor 8e123d2a97 sum_avg.cpp:
- Portability fix for GCC


[SVN r12464]
2002-01-23 18:24:58 +00:00
Douglas Gregor 58656b40b1 Try to fix for MSVC 7.0
[SVN r12456]
2002-01-23 14:01:28 +00:00
Douglas Gregor 8635632937 untabified
[SVN r12336]
2002-01-17 15:57:26 +00:00
Douglas Gregor 96f7184528 Untabified
[SVN r12335]
2002-01-17 15:57:13 +00:00
Douglas Gregor 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
Douglas Gregor d48fa26030 Renamed BOOST_MSVC_ONLY to BOOST_FUNCTION_TARGET_FIX
[SVN r12145]
2001-12-24 17:11:11 +00:00
Douglas Gregor 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
Douglas Gregor fb26630e37 index.html:
- Fix "Copying Efficiency" section to not imply that memory is ALWAYS
    allocated on copy.


[SVN r12062]
2001-12-15 01:11:32 +00:00
Douglas Gregor 794b728603 tutorial.html:
- State that ref(...) function objects won't throw during construction,
    either.


[SVN r12061]
2001-12-15 00:58:47 +00:00
Douglas Gregor ce68cb8999 function_template.hpp:
- Use a C-style cast to deal with constness easily


[SVN r12060]
2001-12-15 00:43:56 +00:00
Douglas Gregor 1a7478bbd1 Updated docs to reflect changes in code:
- assignments/constructors that took const F& now take F
  - no need to use &free_function for assignment from free functions, unless
    using MSVC6.5


[SVN r11946]
2001-12-05 23:16:39 +00:00
Douglas Gregor db5399d447 Remove spurious semicolon
[SVN r11944]
2001-12-05 22:39:33 +00:00
Douglas Gregor 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
Douglas Gregor 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
Douglas Gregor 2e67e2126b reference.html:
- Document semantics of reference_wrapper usage

tutorial.html:
  - Add short discussion and example of ref() and cref()


[SVN r11874]
2001-12-03 16:26:19 +00:00
Douglas Gregor 1512df77b1 function_n_test:
function_test:
  - Add testcases using ref() wrapper


[SVN r11873]
2001-12-03 16:25:00 +00:00
Douglas Gregor 2265421357 General cleanups
[SVN r11791]
2001-11-27 23:11:44 +00:00
Douglas Gregor c64a2f3492 function_template.hpp:
- Changed reinterpret_casts between pointers to member functions
    to C-style casts for MIPSpro.


[SVN r11767]
2001-11-22 00:34:29 +00:00
Douglas Gregor a657e5c812 Reversed prior commit - tests passing references for the implicit
object parameter to an unbound member function pointer have been
  added again.


[SVN r11732]
2001-11-19 20:57:57 +00:00
Douglas Gregor cc3a33a19c function_template.hpp:
- Use boost::mem_fn internally to deal with calls to unbound
    member functions.


[SVN r11731]
2001-11-19 20:56:52 +00:00
Douglas Gregor a4c09a92d1 Generates the functionN.hpp headers
[SVN r11730]
2001-11-19 20:32:07 +00:00
Douglas Gregor 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
Douglas Gregor d37d210685 function_n_test.cpp:
function_test.cpp:
  - Removed use of (previously existing) ability to use references for the
    first parameter to an unbound pointer-to-member function. Only pointer-like
    entities are allowed.


[SVN r11728]
2001-11-19 20:19:23 +00:00
Douglas Gregor 11c56da46f index.html:
- Removed reference to BOOST_FUNCTION_USE_VIRTUAL_FUNCTIONS


[SVN r11727]
2001-11-19 14:57:08 +00:00
Douglas Gregor 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
Douglas Gregor dd76ed757b Removed question about member function pointers since they are now supported
[SVN r11628]
2001-11-07 20:16:09 +00:00
Douglas Gregor e5ff80fb52 Documented new feature in tutorial: automatic adaptation of pointers to member functions
Updated reference documentation:
  - Adaptation of pointers to member functions
  - No longer lie about safe_bool
  - Added documentation for operator!
  - Defined "compatible"


[SVN r11458]
2001-10-28 04:52:37 +00:00