diff --git a/bind.html b/bind.html index 5c8abca..8d965c2 100644 --- a/bind.html +++ b/bind.html @@ -76,8 +76,8 @@
Sometimes it is necessary not to evaluate the first argument, but not - to evaluate some of the other arguments, even when they are nested bind - subexpressions. This can be achieved with the help of another function object, - protect, that masks the type so that bind does - not recognize and evaluate it. When called, protect simply - forwards the argument list to the other function object unmodified.
+Although the first argument is, by default, not evaluated, all other arguments + are. Sometimes it is necessary not to evaluate arguments subsequent to the + first, even when they are nested bind subexpressions. This can + be achieved with the help of another function object, protect, + that masks the type so that bind does not recognize and + evaluate it. When called, protect simply forwards the argument + list to the other function object unmodified.
The header boost/bind/protect.hpp contains an implementation of protect. To protect a bind function object from evaluation, use protect(bind(f, ...)).
@@ -795,7 +796,7 @@ namespaceThis implementation supports function objects with up to nine arguments. This is an implementation detail, not an inherent limitation of the design.
-Some platforms allow several types of (member) functions that differ by their calling convention (the rules by which the function is invoked: how are arguments passed, how is the return value handled, and who cleans up the stack @@ -813,6 +814,12 @@ namespace the macro BOOST_MEM_FN_ENABLE_FASTCALL before including <boost/bind.hpp>.
To use bind with pascal functions, #define the macro BOOST_BIND_ENABLE_PASCAL before including <boost/bind.hpp>.
+To use bind with __cdecl member functions, #define the + macro BOOST_MEM_FN_ENABLE_CDECL before including <boost/bind.hpp>.
+It is best to define these macros in the project options, via -D on the + command line, or as the first line in the translation unit (.cpp file) where + bind is used. Not following this rule can lead to obscure errors + when a header includes bind.hpp before the macro has been defined.
[Note: this is a non-portable extension. It is not part of the interface.]
[Note: Some compilers provide only minimal support for the __stdcall keyword.]
- Copyright © 2001, 2002 by Peter Dimov and Multi Media Ltd. Permission to
- copy, use, modify, sell and distribute this document is granted provided this
- copyright notice appears in all copies. This document is provided "as is"
- without express or implied warranty, and with no claim as to its suitability
- for any purpose.