Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r84787 - trunk/libs/function/doc
From: antoshkka_at_[hidden]
Date: 2013-06-15 02:59:30


Author: apolukhin
Date: 2013-06-15 02:59:30 EDT (Sat, 15 Jun 2013)
New Revision: 84787
URL: http://svn.boost.org/trac/boost/changeset/84787

Log:
Update documentation of Boost.Function and add info about rvalues (refs #8505)

Text files modified:
   trunk/libs/function/doc/history.xml | 9 ++++++
   trunk/libs/function/doc/reference.xml | 58 ++++++++++++++++++++++++++++++++++++++-
   2 files changed, 65 insertions(+), 2 deletions(-)

Modified: trunk/libs/function/doc/history.xml
==============================================================================
--- trunk/libs/function/doc/history.xml Fri Jun 14 19:48:12 2013 (r84786)
+++ trunk/libs/function/doc/history.xml 2013-06-15 02:59:30 EDT (Sat, 15 Jun 2013) (r84787)
@@ -13,6 +13,15 @@
 
 <itemizedlist spacing="compact">
 
+ <listitem><para><bold>Version 1.52.0</bold>: </para>
+ <itemizedlist spacing="compact">
+ <listitem><para>Move constructors and move assignment
+ operators added (only for compilers with C++11 rvalue
+ references support). Original patch
+ contributed by Antony Polukhin.</para></listitem>
+ </itemizedlist>
+ </listitem>
+
   <listitem><para><bold>Version 1.37.0</bold>: </para>
     <itemizedlist spacing="compact">
       <listitem><para>Improved the performance of Boost.Function's

Modified: trunk/libs/function/doc/reference.xml
==============================================================================
--- trunk/libs/function/doc/reference.xml Fri Jun 14 19:48:12 2013 (r84786)
+++ trunk/libs/function/doc/reference.xml 2013-06-15 02:59:30 EDT (Sat, 15 Jun 2013) (r84787)
@@ -204,6 +204,15 @@
     </constructor>
 
     <constructor>
+ <parameter name="f">
+ <paramtype><classname>functionN</classname>&amp;&amp;</paramtype>
+ </parameter>
+ <requires><simpara>C++11 compatible compiler.</simpara></requires>
+ <postconditions><simpara>Moves the value from <code>f</code> to <code>*this</code>. If the argument has its function object allocated on the heap, its buffer will be assigned to <code>*this</code> leaving argument empty.</simpara></postconditions>
+ <throws><simpara>Will not throw unless argument has its function object allocated not on the heap and copying the target of <code>f</code> throws.</simpara></throws>
+ </constructor>
+
+ <constructor>
       <template>
         <template-type-parameter name="F"/>
       </template>
@@ -236,6 +245,15 @@
       </parameter>
       <postconditions><simpara>If copy construction does not throw, <code>*this</code> targets a copy of <code>f</code>'s target, if it has one, or is empty if <code>f.<methodname>empty</methodname>()</code>. If copy construction does throw, <code>this-&gt;<methodname>empty</methodname>()</code>.</simpara></postconditions>
     </copy-assignment>
+
+ <copy-assignment>
+ <parameter name="f">
+ <paramtype><classname>functionN</classname>&amp;&amp;</paramtype>
+ </parameter>
+ <requires><simpara>C++11 compatible compiler.</simpara></requires>
+ <postconditions><simpara>Moves the value from <code>f</code> to <code>*this</code>. If the argument has its function object allocated on the heap, its buffer will be assigned to <code>*this</code> leaving argument empty.</simpara></postconditions>
+ <throws><simpara>Will not throw unless argument has its function object allocated not on the heap and copying the target of <code>f</code> throws.</simpara></throws>
+ </copy-assignment>
 
     <method-group name="modifiers">
       <method name="swap">
@@ -607,7 +625,16 @@
       <postconditions><simpara>Contains a copy of the <code>f</code>'s target, if it has one, or is empty if <code>f.<methodname>empty</methodname>()</code>.</simpara></postconditions>
       <throws><simpara>Will not throw unless copying the target of <code>f</code> throws.</simpara></throws>
     </constructor>
-
+
+ <constructor>
+ <parameter name="f">
+ <paramtype><classname>functionN</classname>&amp;&amp;</paramtype>
+ </parameter>
+ <requires><simpara>C++11 compatible compiler.</simpara></requires>
+ <postconditions><simpara>Moves the value from <code>f</code> to <code>*this</code>. If the argument has its function object allocated on the heap, its buffer will be assigned to <code>*this</code> leaving argument empty.</simpara></postconditions>
+ <throws><simpara>Will not throw unless argument has its function object allocated not on the heap and copying the target of <code>f</code> throws.</simpara></throws>
+ </constructor>
+
     <constructor>
       <parameter name="f">
         <paramtype>const <classname>function</classname>&amp;</paramtype>
@@ -617,6 +644,15 @@
     </constructor>
 
     <constructor>
+ <parameter name="f">
+ <paramtype><classname>function</classname>&amp;&amp;</paramtype>
+ </parameter>
+ <requires><simpara>C++11 compatible compiler.</simpara></requires>
+ <postconditions><simpara>Moves the value from <code>f</code> to <code>*this</code>. If the argument has its function object allocated on the heap, its buffer will be assigned to <code>*this</code> leaving argument empty.</simpara></postconditions>
+ <throws><simpara>Will not throw unless argument has its function object allocated not on the heap and copying the target of <code>f</code> throws.</simpara></throws>
+ </constructor>
+
+ <constructor>
       <template>
         <template-type-parameter name="F"/>
       </template>
@@ -645,10 +681,19 @@
 
     <copy-assignment>
       <parameter name="f">
- <paramtype>const <classname>function</classname>&amp;</paramtype>
+ <paramtype>const <classname>functionN</classname>&amp;</paramtype>
       </parameter>
       <postconditions><simpara>If copy construction does not throw, <code>*this</code> targets a copy of <code>f</code>'s target, if it has one, or is empty if <code>f.<methodname>empty</methodname>()</code>. If copy construction does throw, <code>this-&gt;<methodname>empty</methodname>()</code>.</simpara></postconditions>
     </copy-assignment>
+
+ <copy-assignment>
+ <parameter name="f">
+ <paramtype><classname>functionN</classname>&amp;&amp;</paramtype>
+ </parameter>
+ <requires><simpara>C++11 compatible compiler.</simpara></requires>
+ <postconditions><simpara>Moves the value from <code>f</code> to <code>*this</code>. If the argument has its function object allocated on the heap, its buffer will be assigned to <code>*this</code> leaving argument empty.</simpara></postconditions>
+ <throws><simpara>Will not throw unless argument has its function object allocated not on the heap and copying the target of <code>f</code> throws.</simpara></throws>
+ </copy-assignment>
 
     <copy-assignment>
       <parameter name="f">
@@ -657,6 +702,15 @@
       <postconditions><simpara>If copy construction of the target of <code>f</code> does not throw, <code>*this</code> targets a copy of <code>f</code>'s target, if it has one, or is empty if <code>f.<methodname>empty</methodname>()</code>. </simpara></postconditions>
       <throws><simpara>Will not throw when the target of <code>f</code> is a stateless function object or a reference to the function object. If copy construction does throw, <code>this-&gt;<methodname>empty</methodname>()</code>.</simpara></throws>
     </copy-assignment>
+
+ <copy-assignment>
+ <parameter name="f">
+ <paramtype><classname>function</classname>&amp;&amp;</paramtype>
+ </parameter>
+ <requires><simpara>C++11 compatible compiler.</simpara></requires>
+ <postconditions><simpara>Moves the value from <code>f</code> to <code>*this</code>. If the argument has its function object allocated on the heap, its buffer will be assigned to <code>*this</code> leaving argument empty.</simpara></postconditions>
+ <throws><simpara>Will not throw unless argument has its function object allocated not on the heap and copying the target of <code>f</code> throws.</simpara></throws>
+ </copy-assignment>
 
     <method-group name="modifiers">
       <method name="swap">


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk