$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r56558 - trunk/libs/unordered/doc
From: daniel_james_at_[hidden]
Date: 2009-10-03 12:40:54
Author: danieljames
Date: 2009-10-03 12:40:53 EDT (Sat, 03 Oct 2009)
New Revision: 56558
URL: http://svn.boost.org/trac/boost/changeset/56558
Log:
Update reference docs to latest version of draft standard and fill in
some missing details.
Text files modified: 
   trunk/libs/unordered/doc/ref.xml |   244 ++++++++++++++++++++++++++++++++++++++- 
   1 files changed, 236 insertions(+), 8 deletions(-)
Modified: trunk/libs/unordered/doc/ref.xml
==============================================================================
--- trunk/libs/unordered/doc/ref.xml	(original)
+++ trunk/libs/unordered/doc/ref.xml	2009-10-03 12:40:53 EDT (Sat, 03 Oct 2009)
@@ -23,8 +23,10 @@
             An unordered associative container that stores unique values.
           </simpara></purpose>
           <description>
-            <para>For the normative reference see chapter 23 of
-              <ulink url="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2691.pdf">the working draft of the C++ standard [n2691].</ulink></para>
+            <para>Based on chapter 23 of
+              <ulink url="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2960.pdf">the working draft of the C++ standard [n2960]</ulink>.
+              But without the updated rules for allocators.
+            </para>
             <para><emphasis role="bold">Template Parameters</emphasis>
               <informaltable>
                 <tgroup cols="2">
@@ -180,6 +182,26 @@
             <description>
               <para>The copy constructor. Copies the contained elements, hash function, predicate, maximum load factor and allocator.</para>
             </description>
+            <requires>
+              <para><code>value_type</code> is copy constructible</para>
+            </requires>
+          </constructor>
+          <constructor>
+            <parameter>
+              <paramtype>unordered_set &&</paramtype>
+            </parameter>
+            <description>
+              <para>The move constructor.</para>
+            </description>
+            <notes>
+              <para>This is emulated on compilers without rvalue references.</para>
+            </notes>
+            <requires>
+              <para>
+                <code>value_type</code> is move constructible.
+                (TODO: This is not actually required in this implementation).
+              </para>
+            </requires>
           </constructor>
           <constructor specifiers="explicit">
             <parameter name="a">
@@ -201,6 +223,9 @@
             </description>
           </constructor>
           <destructor>
+            <notes>
+              <para>The destructor is applied to every element, and all memory is deallocated</para>
+            </notes>
           </destructor>
           <method name="operator=">
             <parameter>
@@ -210,6 +235,38 @@
             <description>
               <para>The assignment operator. Copies the contained elements, hash function, predicate and maximum load factor but not the allocator.</para>
             </description>
+            <notes>
+              <para>
+                On compilers without rvalue references, there is a single assignment
+                operator with the signature <code>operator=(unordered_set)</code>
+                in order to emulate move semantics.
+              </para>
+            </notes>
+            <requires>
+              <para><code>value_type</code> is copy constructible</para>
+            </requires>
+          </method>
+          <method name="operator=">
+            <parameter>
+              <paramtype>unordered_set &&</paramtype>
+            </parameter>
+            <type>unordered_set&</type>
+            <description>
+              <para>The move assignment operator.</para>
+            </description>
+            <notes>
+              <para>
+                On compilers without rvalue references, there is a single assignment
+                operator with the signature <code>operator=(unordered_set)</code>
+                in order to emulate move semantics.
+              </para>
+            </notes>
+            <requires>
+              <para>
+                <code>value_type</code> is move constructible.
+                (TODO: This is not actually required in this implementation).
+              </para>
+            </requires>
           </method>
           <method name="get_allocator" cv="const">
             <type>allocator_type</type>
@@ -761,8 +818,10 @@
             An unordered associative container that stores  values. The same key can be stored multiple times.
           </simpara></purpose>
           <description>
-            <para>For the normative reference see chapter 23 of
-              <ulink url="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2691.pdf">the working draft of the C++ standard [n2691].</ulink></para>
+            <para>Based on chapter 23 of
+              <ulink url="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2960.pdf">the working draft of the C++ standard [n2960]</ulink>.
+              But without the updated rules for allocators.
+            </para>
             <para><emphasis role="bold">Template Parameters</emphasis>
               <informaltable>
                 <tgroup cols="2">
@@ -918,6 +977,26 @@
             <description>
               <para>The copy constructor. Copies the contained elements, hash function, predicate, maximum load factor and allocator.</para>
             </description>
+            <requires>
+              <para><code>value_type</code> is copy constructible</para>
+            </requires>
+          </constructor>
+          <constructor>
+            <parameter>
+              <paramtype>unordered_multiset &&</paramtype>
+            </parameter>
+            <description>
+              <para>The move constructor.</para>
+            </description>
+            <notes>
+              <para>This is emulated on compilers without rvalue references.</para>
+            </notes>
+            <requires>
+              <para>
+                <code>value_type</code> is move constructible.
+                (TODO: This is not actually required in this implementation).
+              </para>
+            </requires>
           </constructor>
           <constructor specifiers="explicit">
             <parameter name="a">
@@ -939,6 +1018,9 @@
             </description>
           </constructor>
           <destructor>
+            <notes>
+              <para>The destructor is applied to every element, and all memory is deallocated</para>
+            </notes>
           </destructor>
           <method name="operator=">
             <parameter>
@@ -948,6 +1030,38 @@
             <description>
               <para>The assignment operator. Copies the contained elements, hash function, predicate and maximum load factor but not the allocator.</para>
             </description>
+            <notes>
+              <para>
+                On compilers without rvalue references, there is a single assignment
+                operator with the signature <code>operator=(unordered_multiset)</code>
+                in order to emulate move semantics.
+              </para>
+            </notes>
+            <requires>
+              <para><code>value_type</code> is copy constructible</para>
+            </requires>
+          </method>
+          <method name="operator=">
+            <parameter>
+              <paramtype>unordered_multiset &&</paramtype>
+            </parameter>
+            <type>unordered_multiset&</type>
+            <description>
+              <para>The move assignment operator.</para>
+            </description>
+            <notes>
+              <para>
+                On compilers without rvalue references, there is a single assignment
+                operator with the signature <code>operator=(unordered_multiset)</code>
+                in order to emulate move semantics.
+              </para>
+            </notes>
+            <requires>
+              <para>
+                <code>value_type</code> is move constructible.
+                (TODO: This is not actually required in this implementation).
+              </para>
+            </requires>
           </method>
           <method name="get_allocator" cv="const">
             <type>allocator_type</type>
@@ -1503,8 +1617,10 @@
             An unordered associative container that associates unique keys with another value.
           </simpara></purpose>
           <description>
-            <para>For the normative reference see chapter 23 of
-              <ulink url="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2691.pdf">the working draft of the C++ standard [n2691].</ulink></para>
+            <para>Based on chapter 23 of
+              <ulink url="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2960.pdf">the working draft of the C++ standard [n2960]</ulink>.
+              But without the updated rules for allocators.
+            </para>
             <para><emphasis role="bold">Template Parameters</emphasis>
               <informaltable>
                 <tgroup cols="2">
@@ -1666,6 +1782,26 @@
             <description>
               <para>The copy constructor. Copies the contained elements, hash function, predicate, maximum load factor and allocator.</para>
             </description>
+            <requires>
+              <para><code>value_type</code> is copy constructible</para>
+            </requires>
+          </constructor>
+          <constructor>
+            <parameter>
+              <paramtype>unordered_map &&</paramtype>
+            </parameter>
+            <description>
+              <para>The move constructor.</para>
+            </description>
+            <notes>
+              <para>This is emulated on compilers without rvalue references.</para>
+            </notes>
+            <requires>
+              <para>
+                <code>value_type</code> is move constructible.
+                (TODO: This is not actually required in this implementation).
+              </para>
+            </requires>
           </constructor>
           <constructor specifiers="explicit">
             <parameter name="a">
@@ -1687,6 +1823,9 @@
             </description>
           </constructor>
           <destructor>
+            <notes>
+              <para>The destructor is applied to every element, and all memory is deallocated</para>
+            </notes>
           </destructor>
           <method name="operator=">
             <parameter>
@@ -1696,6 +1835,38 @@
             <description>
               <para>The assignment operator. Copies the contained elements, hash function, predicate and maximum load factor but not the allocator.</para>
             </description>
+            <notes>
+              <para>
+                On compilers without rvalue references, there is a single assignment
+                operator with the signature <code>operator=(unordered_map)</code>
+                in order to emulate move semantics.
+              </para>
+            </notes>
+            <requires>
+              <para><code>value_type</code> is copy constructible</para>
+            </requires>
+          </method>
+          <method name="operator=">
+            <parameter>
+              <paramtype>unordered_map &&</paramtype>
+            </parameter>
+            <type>unordered_map&</type>
+            <description>
+              <para>The move assignment operator.</para>
+            </description>
+            <notes>
+              <para>
+                On compilers without rvalue references, there is a single assignment
+                operator with the signature <code>operator=(unordered_map)</code>
+                in order to emulate move semantics.
+              </para>
+            </notes>
+            <requires>
+              <para>
+                <code>value_type</code> is move constructible.
+                (TODO: This is not actually required in this implementation).
+              </para>
+            </requires>
           </method>
           <method name="get_allocator" cv="const">
             <type>allocator_type</type>
@@ -2290,8 +2461,10 @@
             An unordered associative container that associates  keys with another value. The same key can be stored multiple times.
           </simpara></purpose>
           <description>
-            <para>For the normative reference see chapter 23 of
-              <ulink url="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2691.pdf">the working draft of the C++ standard [n2691].</ulink></para>
+            <para>Based on chapter 23 of
+              <ulink url="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2960.pdf">the working draft of the C++ standard [n2960]</ulink>.
+              But without the updated rules for allocators.
+            </para>
             <para><emphasis role="bold">Template Parameters</emphasis>
               <informaltable>
                 <tgroup cols="2">
@@ -2453,6 +2626,26 @@
             <description>
               <para>The copy constructor. Copies the contained elements, hash function, predicate, maximum load factor and allocator.</para>
             </description>
+            <requires>
+              <para><code>value_type</code> is copy constructible</para>
+            </requires>
+          </constructor>
+          <constructor>
+            <parameter>
+              <paramtype>unordered_multimap &&</paramtype>
+            </parameter>
+            <description>
+              <para>The move constructor.</para>
+            </description>
+            <notes>
+              <para>This is emulated on compilers without rvalue references.</para>
+            </notes>
+            <requires>
+              <para>
+                <code>value_type</code> is move constructible.
+                (TODO: This is not actually required in this implementation).
+              </para>
+            </requires>
           </constructor>
           <constructor specifiers="explicit">
             <parameter name="a">
@@ -2474,6 +2667,9 @@
             </description>
           </constructor>
           <destructor>
+            <notes>
+              <para>The destructor is applied to every element, and all memory is deallocated</para>
+            </notes>
           </destructor>
           <method name="operator=">
             <parameter>
@@ -2483,6 +2679,38 @@
             <description>
               <para>The assignment operator. Copies the contained elements, hash function, predicate and maximum load factor but not the allocator.</para>
             </description>
+            <notes>
+              <para>
+                On compilers without rvalue references, there is a single assignment
+                operator with the signature <code>operator=(unordered_multimap)</code>
+                in order to emulate move semantics.
+              </para>
+            </notes>
+            <requires>
+              <para><code>value_type</code> is copy constructible</para>
+            </requires>
+          </method>
+          <method name="operator=">
+            <parameter>
+              <paramtype>unordered_multimap &&</paramtype>
+            </parameter>
+            <type>unordered_multimap&</type>
+            <description>
+              <para>The move assignment operator.</para>
+            </description>
+            <notes>
+              <para>
+                On compilers without rvalue references, there is a single assignment
+                operator with the signature <code>operator=(unordered_multimap)</code>
+                in order to emulate move semantics.
+              </para>
+            </notes>
+            <requires>
+              <para>
+                <code>value_type</code> is move constructible.
+                (TODO: This is not actually required in this implementation).
+              </para>
+            </requires>
           </method>
           <method name="get_allocator" cv="const">
             <type>allocator_type</type>