1 <?xml version=
"1.0" encoding=
"utf-8"?>
2 <!DOCTYPE header PUBLIC
"-//Boost//DTD BoostBook XML V1.0//EN"
3 "http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
5 Copyright Douglas Gregor 2001-2004
6 Copyright Frank Mori Hess 2007-2009
8 Distributed under the Boost Software License, Version 1.0. (See accompanying
9 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
11 <header name=
"boost/signals2/last_value.hpp" last-revision=
"$Date: 2007-03-06 16:51:55 -0500 (Tue, 06 Mar 2007) $">
12 <namespace name=
"boost">
13 <namespace name=
"signals2">
14 <class name=
"last_value">
16 <template-type-parameter name=
"T"/>
19 <purpose>Evaluate an
<conceptname>InputIterator
</conceptname> sequence and return the
20 last value in the sequence.
</purpose>
24 The
<code>last_value
</code> class was the default
<code>Combiner
</code> template parameter
25 type for signals in the original Signals library.
26 Signals2 uses
<classname>optional_last_value
</classname> as the default, which
31 <typedef name=
"result_type"><type>T
</type></typedef>
33 <method-group name=
"invocation">
34 <method name=
"operator()" cv=
"const">
36 <template-type-parameter name=
"InputIterator"/>
38 <type>result_type
</type>
39 <parameter name=
"first">
40 <paramtype>InputIterator
</paramtype>
42 <parameter name=
"last">
43 <paramtype>InputIterator
</paramtype>
46 <effects><para>Attempts to dereference every iterator in the sequence
<computeroutput>[first, last)
</computeroutput>.
48 <returns><para>The result of the last successful iterator dereference.
</para></returns>
49 <throws><para><classname>no_slots_error
</classname> if no iterators were successfully dereferenced,
50 unless the template type of
<code>last_value
</code> is
<code>void
</code>.
</para></throws>
55 <class-specialization name=
"last_value">
58 <template-arg>void
</template-arg>
61 <purpose>Evaluate an InputIterator sequence.
</purpose>
63 <typedef name=
"result_type">
67 <method-group name=
"invocation">
68 <method name=
"operator()" cv=
"const">
70 <template-type-parameter name=
"InputIterator"/>
72 <type>result_type
</type>
73 <parameter name=
"first">
74 <paramtype>InputIterator
</paramtype>
76 <parameter name=
"last">
77 <paramtype>InputIterator
</paramtype>
80 <effects><para>Attempts to dereference every iterator in the sequence
<computeroutput>[first, last)
</computeroutput>.
83 <para>Unlike the non-void versions of
<code>last_value
</code>, the void specialization does not throw.
</para>
87 </class-specialization>
89 <class name=
"no_slots_error">
90 <inherit access=
"public"><classname>std::exception
</classname></inherit>
91 <purpose>Indicates a combiner was unable to synthesize a return value.
</purpose>
92 <description>The
<code>no_slots_error
</code> exception may be thrown by
<classname>signals2::last_value
</classname>
93 when it is run but unable to obtain any results from its input iterators.
95 <method name=
"what" cv=
"const" specifiers=
"virtual">
96 <type>const char *
</type>