mirror of
https://github.com/boostorg/function.git
synced 2025-07-18 23:22:08 +02:00
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]
This commit is contained in:
@ -45,15 +45,15 @@
|
||||
<i>// Construction</i>
|
||||
<a href="#functionN_default"><b>explicit</b> function<i>N</i>(<b>const</b> Mixin<b>&</b> = Mixin())</a>;
|
||||
<a href="#functionN_copy">function<i>N</i>(<b>const</b> function<i>N</i><b>&</b>)</a>;
|
||||
<a href="#functionN_target"><b>template</b><<b>typename</b> F> function<i>N</i>(<b>const</b> F<b>&</b>, <b>const</b> Mixin<b>&</b> = Mixin())</a>;
|
||||
<a href="#functionN_target"><b>template</b><<b>typename</b> F> function<i>N</i>(F, <b>const</b> Mixin<b>&</b> = Mixin())</a>;
|
||||
<a href="#functionN_target_ref"><b>template</b><<b>typename</b> F> function<i>N</i>(reference_wrapper<F>)</a>;
|
||||
|
||||
<i>// Assignment</i>
|
||||
<a href="#functionN_copy_assn">function<i>N</i><b>&</b> <b>operator</b>=(<b>const</b> function<i>N</i><b>&</b>)</a>;
|
||||
<a href="#functionN_target_assn"><b>template</b><<b>typename</b> F> function<i>N</i><b>&</b> <b>operator</b>=(<b>const</b> F<b>&</b>)</a>;
|
||||
<a href="#functionN_target_assn"><b>template</b><<b>typename</b> F> function<i>N</i><b>&</b> <b>operator</b>=(F)</a>;
|
||||
<a href="#functionN_target_ref_assn"><b>template</b><<b>typename</b> F> function<i>N</i><b>&</b> <b>operator</b>=(reference_wrapper<F>)</a>;
|
||||
<a href="#functionN_copy_set"><b>void</b> set(<b>const</b> function<i>N</i><b>&</b>)</a>;
|
||||
<a href="#functionN_target_set"><b>template</b><<b>typename</b> F> <b>void</b> set(<b>const</b> F<b>&</b>)</a>;
|
||||
<a href="#functionN_target_set"><b>template</b><<b>typename</b> F> <b>void</b> set(F)</a>;
|
||||
<a href="#functionN_swap"><b>void</b> swap(function<i>N</i><b>&</b>)</a>;
|
||||
<a href="#functionN_clear"><b>void</b> clear()</a>;
|
||||
|
||||
@ -87,16 +87,16 @@
|
||||
<i>// Construction</i>
|
||||
function();
|
||||
function(<b>const</b> function<b>&</b>);
|
||||
function<i>N</i>(<b>const</b> function<i>N</i><b>&</b>);
|
||||
<b>template</b><<b>typename</b> F> function<i>N</i>(<b>const</b> F<b>&</b>);
|
||||
function(<b>const</b> function<i>N</i><Arg1, Arg2, ..., Arg<i>N</i>><b>&</b>);
|
||||
<b>template</b><<b>typename</b> F> function<i>N</i>(F);
|
||||
|
||||
<i>// Assignment</i>
|
||||
function<b>&</b> <b>operator</b>=(<b>const</b> function<b>&</b>);
|
||||
function<i>N</i><b>&</b> <b>operator</b>=(<b>const</b> function<i>N</i><b>&</b>);
|
||||
<b>template</b><<b>typename</b> F> function<b>&</b> <b>operator</b>=(<b>const</b> F<b>&</b>);
|
||||
function<b>&</b> <b>operator</b>=(<b>const</b> function<i>N</i><Arg1, Arg2, ..., Arg<i>N</i>><b>&</b>);
|
||||
<b>template</b><<b>typename</b> F> function<b>&</b> <b>operator</b>=(F);
|
||||
<b>void</b> set(<b>const</b> function<b>&</b>);
|
||||
<b>void</b> set(<b>const</b> function<i>N</i><b>&</b>);
|
||||
<b>template</b><<b>typename</b> F> <b>void</b> set(<b>const</b> F<b>&</b>);
|
||||
<b>void</b> set(<b>const</b> function<i>N</i><Arg1, Arg2, ..., Arg<i>N</i>><b>&</b>);
|
||||
<b>template</b><<b>typename</b> F> <b>void</b> set(F);
|
||||
};
|
||||
|
||||
<b>template</b><<b>typename</b> ResultType,
|
||||
@ -174,7 +174,7 @@
|
||||
<li><b>Postconditions</b>: <code>f</code> contains a copy of the <code>g</code>'s target, if it has one, or is empty if <code>g.<a href="#empty">empty</a>()</code>. The mixin for the <code>f</code> is copy-constructed from the mixin of <code>g</code>.</li>
|
||||
</ul>
|
||||
|
||||
<p> <a name="functionN_target"><code><b>template</b><<b>typename</b> F> function<i>N</i>(<b>const</b> F<b>&</b> g, <b>const</b> Mixin<b>&</b> = Mixin());</code></a>
|
||||
<p> <a name="functionN_target"><code><b>template</b><<b>typename</b> F> function<i>N</i>(F g, <b>const</b> Mixin<b>&</b> = Mixin());</code></a>
|
||||
<ul>
|
||||
<li><b>Requires</b>: <code>g</code> is a <a href="#compatible">compatible</a> function object.</li>
|
||||
<li><b>Effects</b>: Constructs the <code>Mixin</code> subobject from the given mixin.</li>
|
||||
@ -196,7 +196,7 @@
|
||||
<li><b>Returns</b>: <code>*this</code>.</li>
|
||||
</ul>
|
||||
|
||||
<p> <a name="functionN_target_assn"><code><b>template</b><<b>typename</b> F> function<i>N</i><b>&</b> <b>operator</b>=(<b>const</b> F<b>&</b> g);</code></a>
|
||||
<p> <a name="functionN_target_assn"><code><b>template</b><<b>typename</b> F> function<i>N</i><b>&</b> <b>operator</b>=(F g);</code></a>
|
||||
<ul>
|
||||
<li><b>Requires</b>: <code>g</code> is a <a href="#compatible">compatible</a> function object.</li>
|
||||
<li><b>Postconditions</b>: <code>f</code> targets a copy of <code>g</code> if <code>g</code> is nonempty, or <code>f.<a href="#empty">empty</a>()</code> if <code>g</code> is empty.</li>
|
||||
@ -217,7 +217,7 @@
|
||||
<li><b>Effects</b>: <code><a href="#functionN_copy_assn">*this = g</a></code>.</li>
|
||||
</ul>
|
||||
|
||||
<p> <a name="functionN_target_set"><code><b>template</b><<b>typename</b> F> <b>void</b> set(<b>const</b> F<b>&</b> g);</code></a>
|
||||
<p> <a name="functionN_target_set"><code><b>template</b><<b>typename</b> F> <b>void</b> set(F g);</code></a>
|
||||
<ul>
|
||||
<li><b>Effects</b>: <code><a href="#functionN_target_assn">*this = g</a></code>.</li>
|
||||
</ul>
|
||||
@ -288,7 +288,7 @@
|
||||
<address><a href="mailto:gregod@cs.rpi.edu">Douglas Gregor</a></address>
|
||||
<!-- Created: Fri Jul 13 10:57:20 EDT 2001 -->
|
||||
<!-- hhmts start -->
|
||||
Last modified: Sun Oct 28 00:40:55 EDT 2001
|
||||
Last modified: Wed Dec 5 18:14:37 EST 2001
|
||||
<!-- hhmts end -->
|
||||
</body>
|
||||
</html>
|
||||
|
@ -60,9 +60,11 @@ else
|
||||
<p> Free function pointers can be considered singleton function objects with const function call operators, and can therefore be directly used with the function object wrappers:
|
||||
<pre>
|
||||
float mul_ints(int x, int y) { return ((float)x) * y; }
|
||||
f = &mul_ints;
|
||||
f = &mul_ints;
|
||||
</pre>
|
||||
|
||||
<p> Note that the <code>&</code> isn't really necessary unless you happen to be using Microsoft Visual C++ version 6.
|
||||
|
||||
<h3>Member functions</h3>
|
||||
<a name="member_func">
|
||||
<p> In many systems, callbacks often call to member functions of a particular
|
||||
@ -73,10 +75,10 @@ object. This is often referred to as "argument binding", and is beyond the scope
|
||||
};
|
||||
|
||||
boost::function<int, X*, int> f;
|
||||
f = &X::foo;
|
||||
f = &X::foo;
|
||||
|
||||
X x;
|
||||
f(&x, 5);
|
||||
f(&x, 5);
|
||||
</pre>
|
||||
<p> Several libraries exist that support argument binding. Three such libraries are summarized below:
|
||||
<ul>
|
||||
@ -196,7 +198,7 @@ boost::function2<float, int, int, SynchronizedPolicy, SynchronizedMixin> f
|
||||
<address><a href="mailto:gregod@cs.rpi.edu">Douglas Gregor</a></address>
|
||||
<!-- Created: Fri Jul 13 12:47:11 EDT 2001 -->
|
||||
<!-- hhmts start -->
|
||||
Last modified: Sun Oct 28 00:49:02 EDT 2001
|
||||
Last modified: Wed Dec 5 17:48:40 EST 2001
|
||||
<!-- hhmts end -->
|
||||
</body>
|
||||
</html>
|
||||
|
Reference in New Issue
Block a user