• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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">
4<!--
5Copyright Douglas Gregor 2001-2004
6Copyright Frank Mori Hess 2007-2009
7
8Distributed under the Boost Software License, Version 1.0. (See accompanying
9file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
10-->
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">
15        <template>
16          <template-type-parameter name="T"/>
17        </template>
18
19        <purpose>Evaluate an <conceptname>InputIterator</conceptname> sequence and return the
20        last value in the sequence.</purpose>
21
22        <description>
23          <para>
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
27            does not throw.
28          </para>
29        </description>
30
31        <typedef name="result_type"><type>T</type></typedef>
32
33        <method-group name="invocation">
34          <method name="operator()" cv="const">
35            <template>
36              <template-type-parameter name="InputIterator"/>
37            </template>
38            <type>result_type</type>
39            <parameter name="first">
40              <paramtype>InputIterator</paramtype>
41            </parameter>
42            <parameter name="last">
43              <paramtype>InputIterator</paramtype>
44            </parameter>
45
46            <effects><para>Attempts to dereference every iterator in the sequence <computeroutput>[first, last)</computeroutput>.
47              </para></effects>
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>
51          </method>
52        </method-group>
53      </class>
54
55      <class-specialization name="last_value">
56        <template/>
57        <specialization>
58          <template-arg>void</template-arg>
59        </specialization>
60
61        <purpose>Evaluate an InputIterator sequence.</purpose>
62
63        <typedef name="result_type">
64          <type>void</type>
65        </typedef>
66
67        <method-group name="invocation">
68          <method name="operator()" cv="const">
69            <template>
70              <template-type-parameter name="InputIterator"/>
71            </template>
72            <type>result_type</type>
73            <parameter name="first">
74              <paramtype>InputIterator</paramtype>
75            </parameter>
76            <parameter name="last">
77              <paramtype>InputIterator</paramtype>
78            </parameter>
79
80            <effects><para>Attempts to dereference every iterator in the sequence <computeroutput>[first, last)</computeroutput>.
81              </para></effects>
82            <throws>
83              <para>Unlike the non-void versions of <code>last_value</code>, the void specialization does not throw.</para>
84            </throws>
85          </method>
86        </method-group>
87      </class-specialization>
88
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.
94        </description>
95        <method name="what" cv="const" specifiers="virtual">
96          <type>const char * </type>
97        </method>
98      </class>
99    </namespace>
100  </namespace>
101</header>
102