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