[range] docs for writing adaptors: removed clarification added in r82315 (it was redundant); fixed typos that messed up numbering

[SVN r82326]
This commit is contained in:
Nathan Ridge
2013-01-03 01:01:55 +00:00
parent 17e4f7024d
commit 36843ccdba
4 changed files with 9 additions and 38 deletions

View File

@ -147,7 +147,7 @@
</p> </p>
</div> </div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"><p><small>Last revised: January 02, 2013 at 23:39:56 GMT</small></p></td> <td align="left"><p><small>Last revised: January 03, 2013 at 00:57:19 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td> <td align="right"><div class="copyright-footer"></div></td>
</tr></table> </tr></table>
<hr> <hr>

View File

@ -90,12 +90,6 @@
<span class="keyword">const</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">reverse_forwarder</span> <span class="identifier">reversed</span> <span class="special">=</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">reverse_forwarder</span><span class="special">();</span> <span class="keyword">const</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">reverse_forwarder</span> <span class="identifier">reversed</span> <span class="special">=</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">reverse_forwarder</span><span class="special">();</span>
<span class="special">}</span> <span class="special">}</span>
</pre> </pre>
Note that this last step only applies if the adaptor takes no arguments.
If the adaptor takes arguments (such as <code class="computeroutput"><span class="identifier">indexed</span></code>),
then there is no need for a variable. Instead, give the tag type
a constructor that takes the arguments (and store those arguments
in the tag object). A usage of the adaptor will then involve construction
of an object of the tag type.
</li> </li>
</ol></div> </ol></div>
</div> </div>

View File

@ -80,15 +80,8 @@
</li> </li>
<li class="listitem"> <li class="listitem">
Implement a holder class to hold the arguments required to construct Implement a holder class to hold the arguments required to construct
the RangeAdaptor. the RangeAdaptor. The holder combines multiple parameters into one
</li> that can be passed as the right operand of <code class="computeroutput"><span class="keyword">operator</span><span class="special">|()</span></code>.
</ol></div>
<p>
The holder combines multiple parameters into one that can be passed as
the right operand of <code class="computeroutput"><span class="keyword">operator</span><span class="special">|()</span></code>.
</p>
<p>
</p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span>
<span class="keyword">class</span> <span class="identifier">replace_holder</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_detail</span><span class="special">::</span><span class="identifier">holder2</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">class</span> <span class="identifier">replace_holder</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_detail</span><span class="special">::</span><span class="identifier">holder2</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span>
<span class="special">{</span> <span class="special">{</span>
@ -100,23 +93,15 @@
<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">=(</span><span class="keyword">const</span> <span class="identifier">replace_holder</span><span class="special">&amp;);</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">=(</span><span class="keyword">const</span> <span class="identifier">replace_holder</span><span class="special">&amp;);</span>
<span class="special">};</span> <span class="special">};</span>
</pre> </pre>
<p> </li>
</p> <li class="listitem">
<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem">
Define an instance of the holder with the name of the adaptor Define an instance of the holder with the name of the adaptor
</li></ol></div>
<p>
</p>
<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_detail</span><span class="special">::</span><span class="identifier">forwarder2</span><span class="special">&lt;</span><span class="identifier">replace_holder</span><span class="special">&gt;</span> <pre class="programlisting"><span class="keyword">static</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_detail</span><span class="special">::</span><span class="identifier">forwarder2</span><span class="special">&lt;</span><span class="identifier">replace_holder</span><span class="special">&gt;</span>
<span class="identifier">replaced</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_detail</span><span class="special">::</span><span class="identifier">forwarder2</span><span class="special">&lt;</span><span class="identifier">replace_holder</span><span class="special">&gt;();</span> <span class="identifier">replaced</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_detail</span><span class="special">::</span><span class="identifier">forwarder2</span><span class="special">&lt;</span><span class="identifier">replace_holder</span><span class="special">&gt;();</span>
</pre> </pre>
<p> </li>
</p> <li class="listitem">
<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem">
Define <code class="computeroutput"><span class="keyword">operator</span><span class="special">|</span></code> Define <code class="computeroutput"><span class="keyword">operator</span><span class="special">|</span></code>
</li></ol></div>
<p>
</p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">SinglePassRange</span><span class="special">&gt;</span> <pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">SinglePassRange</span><span class="special">&gt;</span>
<span class="keyword">inline</span> <span class="identifier">replace_range</span><span class="special">&lt;</span><span class="identifier">SinglePassRange</span><span class="special">&gt;</span> <span class="keyword">inline</span> <span class="identifier">replace_range</span><span class="special">&lt;</span><span class="identifier">SinglePassRange</span><span class="special">&gt;</span>
<span class="keyword">operator</span><span class="special">|(</span><span class="identifier">SinglePassRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">,</span> <span class="keyword">operator</span><span class="special">|(</span><span class="identifier">SinglePassRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">,</span>
@ -133,8 +118,8 @@
<span class="keyword">return</span> <span class="identifier">replace_range</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="identifier">SinglePassRange</span><span class="special">&gt;(</span><span class="identifier">rng</span><span class="special">,</span> <span class="identifier">f</span><span class="special">.</span><span class="identifier">val1</span><span class="special">,</span> <span class="identifier">f</span><span class="special">.</span><span class="identifier">val2</span><span class="special">);</span> <span class="keyword">return</span> <span class="identifier">replace_range</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="identifier">SinglePassRange</span><span class="special">&gt;(</span><span class="identifier">rng</span><span class="special">,</span> <span class="identifier">f</span><span class="special">.</span><span class="identifier">val1</span><span class="special">,</span> <span class="identifier">f</span><span class="special">.</span><span class="identifier">val2</span><span class="special">);</span>
<span class="special">}</span> <span class="special">}</span>
</pre> </pre>
<p> </li>
</p> </ol></div>
</div> </div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td> <td align="left"></td>

View File

@ -225,10 +225,6 @@ namespace
const detail::reverse_forwarder reversed = detail::reverse_forwarder(); const detail::reverse_forwarder reversed = detail::reverse_forwarder();
} }
`` ``
Note that this last step only applies if the adaptor takes no arguments. If the adaptor takes arguments
(such as `indexed`), then there is no need for a variable. Instead, give the tag type a
constructor that takes the arguments (and store those arguments in the tag object). A usage
of the adaptor will then involve construction of an object of the tag type.
[endsect] [endsect]
@ -285,9 +281,7 @@ public:
`` ``
# Implement a holder class to hold the arguments required to construct the RangeAdaptor. # Implement a holder class to hold the arguments required to construct the RangeAdaptor.
The holder combines multiple parameters into one that can be passed as the right operand of `operator|()`. The holder combines multiple parameters into one that can be passed as the right operand of `operator|()`.
`` ``
template<typename T> template<typename T>
class replace_holder : public boost::range_detail::holder2<T> class replace_holder : public boost::range_detail::holder2<T>
@ -302,14 +296,12 @@ private:
`` ``
# Define an instance of the holder with the name of the adaptor # Define an instance of the holder with the name of the adaptor
`` ``
static boost::range_detail::forwarder2<replace_holder> static boost::range_detail::forwarder2<replace_holder>
replaced = boost::range_detail::forwarder2<replace_holder>(); replaced = boost::range_detail::forwarder2<replace_holder>();
`` ``
# Define `operator|` # Define `operator|`
`` ``
template<typename SinglePassRange> template<typename SinglePassRange>
inline replace_range<SinglePassRange> inline replace_range<SinglePassRange>