blob: 095cc4cdcf2fbae2f897e765c6a786deb87d0a3c [file] [log] [blame]
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE header PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
"http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
<!--
Copyright Douglas Gregor 2001-2004
Copyright Frank Mori Hess 2007-2009
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-->
<header name="boost/signals2/last_value.hpp" last-revision="$Date: 2007-03-06 16:51:55 -0500 (Tue, 06 Mar 2007) $">
<namespace name="boost">
<namespace name="signals2">
<class name="last_value">
<template>
<template-type-parameter name="T"/>
</template>
<purpose>Evaluate an <conceptname>InputIterator</conceptname> sequence and return the
last value in the sequence.</purpose>
<description>
<para>
The <code>last_value</code> class was the default <code>Combiner</code> template parameter
type for signals in the original Signals library.
Signals2 uses <classname>optional_last_value</classname> as the default, which
does not throw.
</para>
</description>
<typedef name="result_type"><type>T</type></typedef>
<method-group name="invocation">
<method name="operator()" cv="const">
<template>
<template-type-parameter name="InputIterator"/>
</template>
<type>result_type</type>
<parameter name="first">
<paramtype>InputIterator</paramtype>
</parameter>
<parameter name="last">
<paramtype>InputIterator</paramtype>
</parameter>
<effects><para>Attempts to dereference every iterator in the sequence <computeroutput>[first, last)</computeroutput>.
</para></effects>
<returns><para>The result of the last successful iterator dereference.</para></returns>
<throws><para><classname>no_slots_error</classname> if no iterators were successfully dereferenced,
unless the template type of <code>last_value</code> is <code>void</code>.</para></throws>
</method>
</method-group>
</class>
<class-specialization name="last_value">
<template/>
<specialization>
<template-arg>void</template-arg>
</specialization>
<purpose>Evaluate an InputIterator sequence.</purpose>
<typedef name="result_type">
<type>void</type>
</typedef>
<method-group name="invocation">
<method name="operator()" cv="const">
<template>
<template-type-parameter name="InputIterator"/>
</template>
<type>result_type</type>
<parameter name="first">
<paramtype>InputIterator</paramtype>
</parameter>
<parameter name="last">
<paramtype>InputIterator</paramtype>
</parameter>
<effects><para>Attempts to dereference every iterator in the sequence <computeroutput>[first, last)</computeroutput>.
</para></effects>
<throws>
<para>Unlike the non-void versions of <code>last_value</code>, the void specialization does not throw.</para>
</throws>
</method>
</method-group>
</class-specialization>
<class name="no_slots_error">
<inherit access="public"><classname>std::exception</classname></inherit>
<purpose>Indicates a combiner was unable to synthesize a return value.</purpose>
<description>The <code>no_slots_error</code> exception may be thrown by <classname>signals2::last_value</classname>
when it is run but unable to obtain any results from its input iterators.
</description>
<method name="what" cv="const" specifiers="virtual">
<type>const char * </type>
</method>
</class>
</namespace>
</namespace>
</header>