last_value.xml 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  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. <!--
  5. Copyright Douglas Gregor 2001-2004
  6. Copyright Frank Mori Hess 2007-2009
  7. Distributed under the Boost Software License, Version 1.0. (See accompanying
  8. file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  9. -->
  10. <header name="boost/signals2/last_value.hpp" last-revision="$Date: 2007-03-06 16:51:55 -0500 (Tue, 06 Mar 2007) $">
  11. <namespace name="boost">
  12. <namespace name="signals2">
  13. <class name="last_value">
  14. <template>
  15. <template-type-parameter name="T"/>
  16. </template>
  17. <purpose>Evaluate an <conceptname>InputIterator</conceptname> sequence and return the
  18. last value in the sequence.</purpose>
  19. <description>
  20. <para>
  21. The <code>last_value</code> class was the default <code>Combiner</code> template parameter
  22. type for signals in the original Signals library.
  23. Signals2 uses <classname>optional_last_value</classname> as the default, which
  24. does not throw.
  25. </para>
  26. </description>
  27. <typedef name="result_type"><type>T</type></typedef>
  28. <method-group name="invocation">
  29. <method name="operator()" cv="const">
  30. <template>
  31. <template-type-parameter name="InputIterator"/>
  32. </template>
  33. <type>result_type</type>
  34. <parameter name="first">
  35. <paramtype>InputIterator</paramtype>
  36. </parameter>
  37. <parameter name="last">
  38. <paramtype>InputIterator</paramtype>
  39. </parameter>
  40. <effects><para>Attempts to dereference every iterator in the sequence <computeroutput>[first, last)</computeroutput>.
  41. </para></effects>
  42. <returns><para>The result of the last successful iterator dereference.</para></returns>
  43. <throws><para><classname>no_slots_error</classname> if no iterators were successfully dereferenced,
  44. unless the template type of <code>last_value</code> is <code>void</code>.</para></throws>
  45. </method>
  46. </method-group>
  47. </class>
  48. <class-specialization name="last_value">
  49. <template/>
  50. <specialization>
  51. <template-arg>void</template-arg>
  52. </specialization>
  53. <purpose>Evaluate an InputIterator sequence.</purpose>
  54. <typedef name="result_type">
  55. <type>void</type>
  56. </typedef>
  57. <method-group name="invocation">
  58. <method name="operator()" cv="const">
  59. <template>
  60. <template-type-parameter name="InputIterator"/>
  61. </template>
  62. <type>result_type</type>
  63. <parameter name="first">
  64. <paramtype>InputIterator</paramtype>
  65. </parameter>
  66. <parameter name="last">
  67. <paramtype>InputIterator</paramtype>
  68. </parameter>
  69. <effects><para>Attempts to dereference every iterator in the sequence <computeroutput>[first, last)</computeroutput>.
  70. </para></effects>
  71. <throws>
  72. <para>Unlike the non-void versions of <code>last_value</code>, the void specialization does not throw.</para>
  73. </throws>
  74. </method>
  75. </method-group>
  76. </class-specialization>
  77. <class name="no_slots_error">
  78. <inherit access="public"><classname>std::exception</classname></inherit>
  79. <purpose>Indicates a combiner was unable to synthesize a return value.</purpose>
  80. <description>The <code>no_slots_error</code> exception may be thrown by <classname>signals2::last_value</classname>
  81. when it is run but unable to obtain any results from its input iterators.
  82. </description>
  83. <method name="what" cv="const" specifiers="virtual">
  84. <type>const char * </type>
  85. </method>
  86. </class>
  87. </namespace>
  88. </namespace>
  89. </header>