diff --git a/doc/faq.html b/doc/faq.html index 5b1e07e..7bdd3b4 100644 --- a/doc/faq.html +++ b/doc/faq.html @@ -5,7 +5,7 @@
-Yes, boost::function
is type safe even though it uses void pointers and pointers to functions returning void and taking no arguments. Essentially, all type information is encoded in the functions that manage and invoke function pointers and function objects. Only these functions are instantiated with the exact type that is pointed to by the void pointer or pointer to void function. The reason that both are required is that one may cast between void pointers and object pointers safely or between different types of function pointers (provided you don't invoke a function pointer with the wrong type).
@@ -21,7 +21,7 @@ void g() { return f(); }
int do_something(int); -boost::functionf; +boost::function<void, int> f; f = do_something;
This is a valid usage of boost::function
because void returns are not used. With void returns, we would attempting to compile ill-formed code similar to:
diff --git a/doc/reference.html b/doc/reference.html
index 51d73e6..911dbdc 100644
--- a/doc/reference.html
+++ b/doc/reference.html
@@ -6,9 +6,9 @@
<boost/function.hpp>
synopsis<boost/function.hpp>
synopsis Here MAX_ARGS
is an implementation-defined constant that defines the maximum number of function arguments supported by Boost.Function and will be at least 10. The MAX_ARGS
constant referred to in this document need not have any direct representation in the library.
@@ -84,7 +84,7 @@ functionN<ResultType, Arg1, Arg2, ..., ArgN, Policy, Mixin, Allocator>&); // For any N in [0, MAX_ARGS] - template<typename Signature, // Function type: ResultType (Arg1, Arg2, ..., ArgN) + template<typename Signature, // Function type: ResultType (Arg1, Arg2, ..., ArgN) typename Policy = empty_function_policy, // Deprecated typename Mixin = empty_function_mixin, // Deprecated typename Allocator = std::allocator<function_base> > @@ -112,7 +112,6 @@
f
is compatible if for the given set of argument types Arg1
, Arg2
, ..., ArgN
and a return type ResultType
, the appropriate following function is well-formed:
@@ -172,7 +171,7 @@
g
is a stateless function object unless construction of the Mixin
subobject throws. template<typename F> functionN(reference_wrapper<F> g);
+
template<typename F> functionN(reference_wrapper<F> g);
g.get()
is a compatible function object.Mixin
subobject from the given mixin.g
is a stateless function object. template<typename F> functionN& operator=(reference_wrapper<F> g);
+
template<typename F> functionN& operator=(reference_wrapper<F> g);
g.get()
is a compatible function object.f
targets g.get()
(not a copy of g.get()
) if g.get()
is nonempty, or f.empty()
if g.get()
is empty. The semantics of all operations in class template function
are equivalent to that of the underlying functionN
object, although additional member functions are required to allow proper copy construction and copy assignment of function
objects.
template<typename ResultType, typename Arg1, @@ -277,7 +275,6 @@
f.swap(g);
template<typename Signature, typename Policy, typename Mixin, typename Allocator> void swap(function<Signature, Policy, Mixin, Allocator>& f, diff --git a/doc/tutorial.html b/doc/tutorial.html index e875058..79d6089 100644 --- a/doc/tutorial.html +++ b/doc/tutorial.html @@ -6,17 +6,17 @@ -+
Boost.Function Tutorial
Boost.Function Tutorial
Boost.Function has two syntactical forms: the preferred form and the compatibility form. The preferred form fits more closely with the C++ language and reduces the number of separate template parameters that need to be considered, often improving readability; however, the preferred form is not supported on all platforms due to compiler bugs. The compatible form will work on all compilers supported by Boost.Function. Consult the table below to determine which syntactic form to use for your compiler.
-