$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r67938 - in trunk/libs/icl: doc doc/html/boost_icl/function_reference test/test_doc_code_
From: afojgo_at_[hidden]
Date: 2011-01-10 19:42:46
Author: jofaber
Date: 2011-01-10 19:42:38 EST (Mon, 10 Jan 2011)
New Revision: 67938
URL: http://svn.boost.org/trac/boost/changeset/67938
Log:
Fixed error in docs: element_iterators are free functions. Added example and test code.
Text files modified: 
   trunk/libs/icl/doc/functions_element_iteration.qbk                          |    43 +++++++++++++++++++++++---------        
   trunk/libs/icl/doc/html/boost_icl/function_reference/element_iteration.html |    52 +++++++++++++++++++++++++++++---------- 
   trunk/libs/icl/test/test_doc_code_/test_doc_code.cpp                        |    37 ++++++++++++++++++++++++++++            
   3 files changed, 106 insertions(+), 26 deletions(-)
Modified: trunk/libs/icl/doc/functions_element_iteration.qbk
==============================================================================
--- trunk/libs/icl/doc/functions_element_iteration.qbk	(original)
+++ trunk/libs/icl/doc/functions_element_iteration.qbk	2011-01-10 19:42:38 EST (Mon, 10 Jan 2011)
@@ -56,24 +56,43 @@
 
 [table
 [[['*Synopsis Complexities*]]   [__ch_itv_sets__][__ch_itv_maps__]]
-[[`J T::elements_begin()`]               [__O1__]    [__O1__]     ]
-[[`J T::elements_end()`]                 [__O1__]    [__O1__]     ]
-[[`J T::elements_rbegin()`]              [__O1__]    [__O1__]     ]
-[[`J T::elements_rend()`]                [__O1__]    [__O1__]     ]
+[[`J elements_begin(T&)`]               [__O1__]    [__O1__]     ]
+[[`J elements_end(T&)`]                 [__O1__]    [__O1__]     ]
+[[`J elements_rbegin(T&)`]              [__O1__]    [__O1__]     ]
+[[`J elements_rend(T&)`]                [__O1__]    [__O1__]     ]
 ]
 
 [table
 [[['*Element iteration*]]                                      [Description]     ]
-[[``      T::element_iterator T::elements_begin()
-T::element_const_iterator T::elements_begin()const``]          [Returns an element iterator to the first element of the container.]                        ]
-[[``      T::element_iterator T::elements_end()
-T::element_const_iterator T::elements_end()const``]            [Returns an element iterator to a position `elements_end()` after the last element of the container.]]
-[[``      T::element_reverse_iterator T::elements_rbegin()
-T::element_const_reverse_iterator T::elements_rbegin()const``] [Returns a reverse element iterator to the last element of the container.]                  ]
-[[``      T::element_reverse_iterator T::elements_rend()
-T::element_const_reverse_iterator T::elements_rend()const``]   [Returns a reverse element iterator to a position `elements_rend()` before the first element of the container.]]
+[[``      T::element_iterator elements_begin(T&)
+T::element_const_iterator elements_begin(const T&)``]          [Returns an element iterator to the first element of the container.]                        ]
+[[``      T::element_iterator elements_end(T&)
+T::element_const_iterator elements_end(const T&)``]            [Returns an element iterator to a position `elements_end(c)` after the last element of the container.]]
+[[``      T::element_reverse_iterator elements_rbegin(T&)
+T::element_const_reverse_iterator elements_rbegin(const T&)``] [Returns a reverse element iterator to the last element of the container.]                  ]
+[[``      T::element_reverse_iterator elements_rend(T&)
+T::element_const_reverse_iterator elements_rend(const T&)``]   [Returns a reverse element iterator to a position `elements_rend(c)` before the first element of the container.]]
 ]
 
+['*Example*]
+
+``
+interval_set<int> inter_set;
+inter_set.add(interval<int>::right_open(0,3))
+         .add(interval<int>::right_open(7,9));
+
+for(interval_set<int>::element_const_iterator creeper = elements_begin(inter_set); 
+    creeper != elements_end(inter_set); ++creeper)
+    cout << *creeper << " ";
+cout << endl;
+//Program output: 0 1 2 7 8
+
+for(interval_set<int>::element_reverse_iterator repeerc = elements_rbegin(inter_set); 
+    repeerc != elements_rend(inter_set); ++repeerc)
+    cout << *repeerc << " ";
+cout << endl;
+//Program output: 8 7 2 1 0
+``
 
 ['*See also . . .*]
 [table
Modified: trunk/libs/icl/doc/html/boost_icl/function_reference/element_iteration.html
==============================================================================
--- trunk/libs/icl/doc/html/boost_icl/function_reference/element_iteration.html	(original)
+++ trunk/libs/icl/doc/html/boost_icl/function_reference/element_iteration.html	2011-01-10 19:42:38 EST (Mon, 10 Jan 2011)
@@ -174,7 +174,7 @@
 <tr>
 <td>
               <p>
-                <code class="computeroutput"><span class="identifier">J</span> <span class="identifier">T</span><span class="special">::</span><span class="identifier">elements_begin</span><span class="special">()</span></code>
+                <code class="computeroutput"><span class="identifier">J</span> <span class="identifier">elements_begin</span><span class="special">(</span><span class="identifier">T</span><span class="special">&)</span></code>
               </p>
               </td>
 <td>
@@ -191,7 +191,7 @@
 <tr>
 <td>
               <p>
-                <code class="computeroutput"><span class="identifier">J</span> <span class="identifier">T</span><span class="special">::</span><span class="identifier">elements_end</span><span class="special">()</span></code>
+                <code class="computeroutput"><span class="identifier">J</span> <span class="identifier">elements_end</span><span class="special">(</span><span class="identifier">T</span><span class="special">&)</span></code>
               </p>
               </td>
 <td>
@@ -208,7 +208,7 @@
 <tr>
 <td>
               <p>
-                <code class="computeroutput"><span class="identifier">J</span> <span class="identifier">T</span><span class="special">::</span><span class="identifier">elements_rbegin</span><span class="special">()</span></code>
+                <code class="computeroutput"><span class="identifier">J</span> <span class="identifier">elements_rbegin</span><span class="special">(</span><span class="identifier">T</span><span class="special">&)</span></code>
               </p>
               </td>
 <td>
@@ -225,7 +225,7 @@
 <tr>
 <td>
               <p>
-                <code class="computeroutput"><span class="identifier">J</span> <span class="identifier">T</span><span class="special">::</span><span class="identifier">elements_rend</span><span class="special">()</span></code>
+                <code class="computeroutput"><span class="identifier">J</span> <span class="identifier">elements_rend</span><span class="special">(</span><span class="identifier">T</span><span class="special">&)</span></code>
               </p>
               </td>
 <td>
@@ -264,8 +264,8 @@
               <p>
                 
 </p>
-<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting">      <span class="identifier">T</span><span class="special">::</span><span class="identifier">element_iterator</span> <span class="identifier">T</span><span class="special">::</span><span class="identifier">elements_begin</span><span class="special">()</span>
-<span class="identifier">T</span><span class="special">::</span><span class="identifier">element_const_iterator</span> <span class="identifier">T</span><span class="special">::</span><span class="identifier">elements_begin</span><span class="special">()</span><span class="keyword">const</span></pre>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting">      <span class="identifier">T</span><span class="special">::</span><span class="identifier">element_iterator</span> <span class="identifier">elements_begin</span><span class="special">(</span><span class="identifier">T</span><span class="special">&)</span>
+<span class="identifier">T</span><span class="special">::</span><span class="identifier">element_const_iterator</span> <span class="identifier">elements_begin</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&)</span></pre>
 <p>
               </p>
               </td>
@@ -280,14 +280,14 @@
               <p>
                 
 </p>
-<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting">      <span class="identifier">T</span><span class="special">::</span><span class="identifier">element_iterator</span> <span class="identifier">T</span><span class="special">::</span><span class="identifier">elements_end</span><span class="special">()</span>
-<span class="identifier">T</span><span class="special">::</span><span class="identifier">element_const_iterator</span> <span class="identifier">T</span><span class="special">::</span><span class="identifier">elements_end</span><span class="special">()</span><span class="keyword">const</span></pre>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting">      <span class="identifier">T</span><span class="special">::</span><span class="identifier">element_iterator</span> <span class="identifier">elements_end</span><span class="special">(</span><span class="identifier">T</span><span class="special">&)</span>
+<span class="identifier">T</span><span class="special">::</span><span class="identifier">element_const_iterator</span> <span class="identifier">elements_end</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&)</span></pre>
 <p>
               </p>
               </td>
 <td>
               <p>
-                Returns an element iterator to a position <code class="computeroutput"><span class="identifier">elements_end</span><span class="special">()</span></code> after the last element of the container.
+                Returns an element iterator to a position <code class="computeroutput"><span class="identifier">elements_end</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></code> after the last element of the container.
               </p>
               </td>
 </tr>
@@ -296,8 +296,8 @@
               <p>
                 
 </p>
-<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting">      <span class="identifier">T</span><span class="special">::</span><span class="identifier">element_reverse_iterator</span> <span class="identifier">T</span><span class="special">::</span><span class="identifier">elements_rbegin</span><span class="special">()</span>
-<span class="identifier">T</span><span class="special">::</span><span class="identifier">element_const_reverse_iterator</span> <span class="identifier">T</span><span class="special">::</span><span class="identifier">elements_rbegin</span><span class="special">()</span><span class="keyword">const</span></pre>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting">      <span class="identifier">T</span><span class="special">::</span><span class="identifier">element_reverse_iterator</span> <span class="identifier">elements_rbegin</span><span class="special">(</span><span class="identifier">T</span><span class="special">&)</span>
+<span class="identifier">T</span><span class="special">::</span><span class="identifier">element_const_reverse_iterator</span> <span class="identifier">elements_rbegin</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&)</span></pre>
 <p>
               </p>
               </td>
@@ -312,14 +312,14 @@
               <p>
                 
 </p>
-<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting">      <span class="identifier">T</span><span class="special">::</span><span class="identifier">element_reverse_iterator</span> <span class="identifier">T</span><span class="special">::</span><span class="identifier">elements_rend</span><span class="special">()</span>
-<span class="identifier">T</span><span class="special">::</span><span class="identifier">element_const_reverse_iterator</span> <span class="identifier">T</span><span class="special">::</span><span class="identifier">elements_rend</span><span class="special">()</span><span class="keyword">const</span></pre>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting">      <span class="identifier">T</span><span class="special">::</span><span class="identifier">element_reverse_iterator</span> <span class="identifier">elements_rend</span><span class="special">(</span><span class="identifier">T</span><span class="special">&)</span>
+<span class="identifier">T</span><span class="special">::</span><span class="identifier">element_const_reverse_iterator</span> <span class="identifier">elements_rend</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&)</span></pre>
 <p>
               </p>
               </td>
 <td>
               <p>
-                Returns a reverse element iterator to a position <code class="computeroutput"><span class="identifier">elements_rend</span><span class="special">()</span></code> before the first element of the
+                Returns a reverse element iterator to a position <code class="computeroutput"><span class="identifier">elements_rend</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></code> before the first element of the
                 container.
               </p>
               </td>
@@ -327,6 +327,30 @@
 </tbody>
 </table></div>
 <p>
+        <span class="emphasis"><em><span class="bold"><strong>Example</strong></span></em></span>
+      </p>
+<p>
+        
+</p>
+<pre class="programlisting"><span class="identifier">interval_set</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span> <span class="identifier">inter_set</span><span class="special">;</span>
+<span class="identifier">inter_set</span><span class="special">.</span><span class="identifier">add</span><span class="special">(</span><span class="identifier">interval</span><span class="special"><</span><span class="keyword">int</span><span class="special">>::</span><span class="identifier">right_open</span><span class="special">(</span><span class="number">0</span><span class="special">,</span><span class="number">3</span><span class="special">))</span>
+         <span class="special">.</span><span class="identifier">add</span><span class="special">(</span><span class="identifier">interval</span><span class="special"><</span><span class="keyword">int</span><span class="special">>::</span><span class="identifier">right_open</span><span class="special">(</span><span class="number">7</span><span class="special">,</span><span class="number">9</span><span class="special">));</span>
+
+<span class="keyword">for</span><span class="special">(</span><span class="identifier">interval_set</span><span class="special"><</span><span class="keyword">int</span><span class="special">>::</span><span class="identifier">element_const_iterator</span> <span class="identifier">creeper</span> <span class="special">=</span> <span class="identifier">elements_begin</span><span class="special">(</span><span class="identifier">inter_set</span><span class="special">);</span> 
+    <span class="identifier">creeper</span> <span class="special">!=</span> <span class="identifier">elements_end</span><span class="special">(</span><span class="identifier">inter_set</span><span class="special">);</span> <span class="special">++</span><span class="identifier">creeper</span><span class="special">)</span>
+    <span class="identifier">cout</span> <span class="special"><<</span> <span class="special">*</span><span class="identifier">creeper</span> <span class="special"><<</span> <span class="string">" "</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">//Program output: 0 1 2 7 8
+</span>
+<span class="keyword">for</span><span class="special">(</span><span class="identifier">interval_set</span><span class="special"><</span><span class="keyword">int</span><span class="special">>::</span><span class="identifier">element_reverse_iterator</span> <span class="identifier">repeerc</span> <span class="special">=</span> <span class="identifier">elements_rbegin</span><span class="special">(</span><span class="identifier">inter_set</span><span class="special">);</span> 
+    <span class="identifier">repeerc</span> <span class="special">!=</span> <span class="identifier">elements_rend</span><span class="special">(</span><span class="identifier">inter_set</span><span class="special">);</span> <span class="special">++</span><span class="identifier">repeerc</span><span class="special">)</span>
+    <span class="identifier">cout</span> <span class="special"><<</span> <span class="special">*</span><span class="identifier">repeerc</span> <span class="special"><<</span> <span class="string">" "</span><span class="special">;</span>
+<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
+<span class="comment">//Program output: 8 7 2 1 0
+</span></pre>
+<p>
+      </p>
+<p>
         <span class="emphasis"><em><span class="bold"><strong>See also . . .</strong></span></em></span>
       </p>
 <div class="informaltable"><table class="table">
Modified: trunk/libs/icl/test/test_doc_code_/test_doc_code.cpp
==============================================================================
--- trunk/libs/icl/test/test_doc_code_/test_doc_code.cpp	(original)
+++ trunk/libs/icl/test/test_doc_code_/test_doc_code.cpp	2011-01-10 19:42:38 EST (Mon, 10 Jan 2011)
@@ -70,3 +70,40 @@
         cout << "error, identifiers.contains('boost')\n";
 }
 
+BOOST_AUTO_TEST_CASE(function_reference_element_iteration)
+{
+	// begin of doc code -------------------------------------------------------
+    interval_set<int> inter_set;
+    inter_set.add(interval<int>::right_open(0,3))
+		     .add(interval<int>::right_open(7,9));
+
+    for(interval_set<int>::element_const_iterator creeper = elements_begin(inter_set); 
+        creeper != elements_end(inter_set); ++creeper)
+        cout << *creeper << " ";
+    cout << endl;
+	//Program output: 0 1 2 7 8
+
+    for(interval_set<int>::element_reverse_iterator repeerc = elements_rbegin(inter_set); 
+        repeerc != elements_rend(inter_set); ++repeerc)
+        cout << *repeerc << " ";
+    cout << endl;
+	//Program output: 8 7 2 1 0
+	// end of doc code ---------------------------------------------------------
+
+	// Testcode
+	std::stringstream result;
+    for(interval_set<int>::element_iterator creeper2 = elements_begin(inter_set); 
+        creeper2 != elements_end(inter_set); ++creeper2)
+        result << *creeper2 << " ";
+
+	BOOST_CHECK_EQUAL(result.str(), std::string("0 1 2 7 8 "));
+
+	std::stringstream tluser;
+    for(interval_set<int>::element_const_reverse_iterator repeerc2 
+			= elements_rbegin(const_cast<const interval_set<int>&>(inter_set)); 
+        repeerc2 != elements_rend(const_cast<const interval_set<int>&>(inter_set)); ++repeerc2)
+        tluser << *repeerc2 << " ";
+
+	BOOST_CHECK_EQUAL(tluser.str(), std::string("8 7 2 1 0 "));
+}
+