Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r76617 - in sandbox/closure: . libs/closure libs/functional/overloaded_function/doc libs/functional/overloaded_function/doc/html libs/functional/overloaded_function/doc/html/boost libs/functional/overloaded_function/doc/html/functional_overloaded_function libs/functional/overloaded_function/test libs/local_function libs/local_function/example libs/local_function/test libs/scope_exit/doc libs/scope_exit/doc/html libs/scope_exit/doc/html/scope_exit
From: lorcaminiti_at_[hidden]
Date: 2012-01-21 13:20:52


Author: lcaminiti
Date: 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
New Revision: 76617
URL: http://svn.boost.org/trac/boost/changeset/76617

Log:
Renaming to LocalFunction.
Added:
   sandbox/closure/libs/local_function/
      - copied from r76567, /sandbox/closure/libs/closure/
   sandbox/closure/libs/local_function/example/Jamfile.v2
      - copied, changed from r76567, /sandbox/closure/libs/closure/example/Jamfile.jam
   sandbox/closure/libs/local_function/test/Jamfile.v2
      - copied, changed from r76567, /sandbox/closure/libs/closure/test/Jamfile.jam
Removed:
   sandbox/closure/libs/closure/
   sandbox/closure/libs/local_function/example/Jamfile.jam
   sandbox/closure/libs/local_function/example/add.cpp
   sandbox/closure/libs/local_function/example/add_lambda.cpp
   sandbox/closure/libs/local_function/example/function_types.cpp
   sandbox/closure/libs/local_function/test/Jamfile.jam
Text files modified:
   sandbox/closure/Jamroot.jam | 1
   sandbox/closure/libs/functional/overloaded_function/doc/Jamfile.v2 | 9 -
   sandbox/closure/libs/functional/overloaded_function/doc/html/BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_ARITY_MAX.html | 4
   sandbox/closure/libs/functional/overloaded_function/doc/html/BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX.html | 4
   sandbox/closure/libs/functional/overloaded_function/doc/html/boost/make_overloaded_function.html | 8 +-
   sandbox/closure/libs/functional/overloaded_function/doc/html/boost/overloaded_function.html | 42 ++++++++-----
   sandbox/closure/libs/functional/overloaded_function/doc/html/functional_overloaded_function/Getting_Started.html | 2
   sandbox/closure/libs/functional/overloaded_function/doc/html/functional_overloaded_function/Tutorial.html | 60 ++++++++++++------
   sandbox/closure/libs/functional/overloaded_function/doc/html/functional_overloaded_function/acknowledgments.html | 2
   sandbox/closure/libs/functional/overloaded_function/doc/html/index.html | 23 +++---
   sandbox/closure/libs/functional/overloaded_function/doc/html/reference.html | 2
   sandbox/closure/libs/functional/overloaded_function/doc/overloaded_function.qbk | 37 ++++++----
   sandbox/closure/libs/functional/overloaded_function/test/Jamfile.v2 | 1
   sandbox/closure/libs/functional/overloaded_function/test/overloaded_function.cpp | 9 +
   sandbox/closure/libs/local_function/example/Jamfile.v2 | 62 +++++++++++++------
   sandbox/closure/libs/local_function/example/gcc_lambda.cpp | 16 ++--
   sandbox/closure/libs/local_function/example/gcc_lambda.hpp | 126 ++++++++++++++++++++++++++++++++-------
   sandbox/closure/libs/local_function/example/gcc_lambda_cpp11.cpp | 12 ++-
   sandbox/closure/libs/local_function/test/Jamfile.v2 | 44 ++++++++++++-
   sandbox/closure/libs/local_function/test/return_derivative.cpp | 16 ++--
   sandbox/closure/libs/local_function/test/return_factorial.cpp | 12 +--
   sandbox/closure/libs/local_function/test/return_inc.cpp | 12 +--
   sandbox/closure/libs/local_function/test/return_setget.cpp | 20 ++---
   sandbox/closure/libs/local_function/test/return_this.cpp | 12 +--
   sandbox/closure/libs/scope_exit/doc/Jamfile.v2 | 11 +--
   sandbox/closure/libs/scope_exit/doc/html/BOOST_SCOPE_EXIT.html | 4
   sandbox/closure/libs/scope_exit/doc/html/BOOST_SCOPE_EXIT_ALL.html | 4
   sandbox/closure/libs/scope_exit/doc/html/BOOST_SCOPE_EXIT_CONFIG_NO_CPP11.html | 4
   sandbox/closure/libs/scope_exit/doc/html/BOOST_SCOPE_EXIT_END.html | 4
   sandbox/closure/libs/scope_exit/doc/html/BOOST_SCOPE_EXIT_TPL.html | 4
   sandbox/closure/libs/scope_exit/doc/html/index.html | 6
   sandbox/closure/libs/scope_exit/doc/html/reference.html | 2
   sandbox/closure/libs/scope_exit/doc/html/scope_exit/Getting_Started.html | 2
   sandbox/closure/libs/scope_exit/doc/html/scope_exit/No_Variadic_Macros.html | 86 ++++++++++++++++++---------
   sandbox/closure/libs/scope_exit/doc/html/scope_exit/Tutorial.html | 14 ++--
   sandbox/closure/libs/scope_exit/doc/html/scope_exit/acknowledgements.html | 2
   sandbox/closure/libs/scope_exit/doc/html/scope_exit/annex__alternatives.html | 10 +-
   sandbox/closure/libs/scope_exit/doc/scope_exit.qbk | 42 +++++++------
   38 files changed, 461 insertions(+), 270 deletions(-)

Modified: sandbox/closure/Jamroot.jam
==============================================================================
--- sandbox/closure/Jamroot.jam (original)
+++ sandbox/closure/Jamroot.jam 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
@@ -12,6 +12,5 @@
 project : requirements
     <include>"."
     <include>$(BOOST_ROOT)
- <define>BOOST_PP_VARIADICS # @todo remove this...
 ;
 

Modified: sandbox/closure/libs/functional/overloaded_function/doc/Jamfile.v2
==============================================================================
--- sandbox/closure/libs/functional/overloaded_function/doc/Jamfile.v2 (original)
+++ sandbox/closure/libs/functional/overloaded_function/doc/Jamfile.v2 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
@@ -18,16 +18,13 @@
         <doxygen:param>ALIASES=" Params=\"<b>Parameters:</b> <table border="0">\" Param{2}=\"<tr><td><b><tt>\\1</tt></b></td><td>\\2</td></tr>\" EndParams=\"</table>\" Returns=\"<b>Returns:</b>\" Note=\"<b>Note:</b>\" Warning=\"<b>Warning:</b>\" See=\"<b>See:</b>\" RefSect{1}=\"\\xmlonly<link linkend='functional_overloaded_function.\\1'>\\1</link>\\endxmlonly\" RefSectId{2}=\"\\xmlonly<link linkend='functional_overloaded_function.\\1'>\\2</link>\\endxmlonly\" RefClass{1}=\"\\xmlonly<computeroutput><classname alt='\\1'>\\1</classname></computeroutput>\\endxmlonly\" RefFunc{1}=\"\\xmlonly<computeroutput><functionname alt='\\1'>\\1</functionname></computeroutput>\\endxmlonly\" RefMacro{1}=\"\\xmlonly<computeroutput><macroname alt='\\1'>\\1</macroname></computeroutput>\\endxmlonly\" "
 
         # Extract Doxygen that comments non-variant macros.
- <doxygen:param>PREDEFINED="BOOST_LOCAL_CONFIG_COMPLIANT DOXY"
+ <doxygen:param>PREDEFINED="DOXY"
         <reftitle>"Reference"
     ;
 
-xml functional_overloaded_function : overloaded_function.qbk :
- <dependency>reference
-;
+xml doc : overloaded_function.qbk : <dependency>reference ;
 
-boostbook standalone : functional_overloaded_function :
- # Path for links to Boost:
+boostbook standalone : doc :
     <xsl:param>boost.root=../../../../..
     <xsl:param>boost.defaults=Boost
     <format>pdf:<xsl:param>boost.url.prefix=http://www.boost.org/doc/libs/release/libs/functional/overloaded_function/doc/html

Modified: sandbox/closure/libs/functional/overloaded_function/doc/html/BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_ARITY_MAX.html
==============================================================================
--- sandbox/closure/libs/functional/overloaded_function/doc/html/BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_ARITY_MAX.html (original)
+++ sandbox/closure/libs/functional/overloaded_function/doc/html/BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_ARITY_MAX.html 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
@@ -33,8 +33,8 @@
 
 </span>BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_ARITY_MAX</pre></div>
 <div class="refsect1">
-<a name="id792504"></a><h2>Description</h2>
-<p>If this macro is left undefined by the user, it has a default value of 5.</p>
+<a name="id805235"></a><h2>Description</h2>
+<p>If this macro is left undefined by the user, it has a default value of 5 (increasing this number might increase compilation time). When specified by the user, this macro must be a non-negative integer number.</p>
 <p><span class="bold"><strong>See:</strong></span> <a class="link" href="functional_overloaded_function/Getting_Started.html" title="Getting Started"> Getting Started</a>, <code class="computeroutput">overloaded_function</code>. </p>
 </div>
 </div>

Modified: sandbox/closure/libs/functional/overloaded_function/doc/html/BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX.html
==============================================================================
--- sandbox/closure/libs/functional/overloaded_function/doc/html/BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX.html (original)
+++ sandbox/closure/libs/functional/overloaded_function/doc/html/BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX.html 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
@@ -33,8 +33,8 @@
 
 </span>BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX</pre></div>
 <div class="refsect1">
-<a name="id792559"></a><h2>Description</h2>
-<p>If this macro is left undefined by the user, it has a default value of 5.</p>
+<a name="id805290"></a><h2>Description</h2>
+<p>If this macro is left undefined by the user, it has a default value of 5 (increasing this number might increase compilation time). When defined by the user, this macro must be an integer number greater or equal than 2 (because at least two distinct functions need to be specified in order to define an overload).</p>
 <p><span class="bold"><strong>See:</strong></span> <a class="link" href="functional_overloaded_function/Getting_Started.html" title="Getting Started"> Getting Started</a>, <code class="computeroutput">overloaded_function</code>. </p>
 </div>
 </div>

Modified: sandbox/closure/libs/functional/overloaded_function/doc/html/boost/make_overloaded_function.html
==============================================================================
--- sandbox/closure/libs/functional/overloaded_function/doc/html/boost/make_overloaded_function.html (original)
+++ sandbox/closure/libs/functional/overloaded_function/doc/html/boost/make_overloaded_function.html 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
@@ -36,11 +36,11 @@
   <a class="link" href="overloaded_function.html" title="Class template overloaded_function">overloaded_function</a><span class="special">&lt;</span> <span class="identifier">__function_type__</span><span class="special">&lt;</span> <span class="identifier">F1</span> <span class="special">&gt;</span><span class="special">,</span> <span class="identifier">__function_type__</span><span class="special">&lt;</span> <span class="identifier">F2</span> <span class="special">&gt;</span><span class="special">,</span><span class="special">...</span><span class="special">&gt;</span>
   <span class="identifier">make_overloaded_function</span><span class="special">(</span><span class="identifier">F1</span> f1<span class="special">,</span> <span class="identifier">F2</span> f2<span class="special">,</span> <span class="special">...</span><span class="special">)</span><span class="special">;</span></pre></div>
 <div class="refsect1">
-<a name="id792339"></a><h2>Description</h2>
-<p>This function template creates and returns an <code class="computeroutput"><code class="computeroutput"><a class="link" href="overloaded_function.html" title="Class template overloaded_function">overloaded_function</a></code></code> function object that overloads all the functions specified by its parameters.</p>
-<p>The function types are internally determined from the template parameter types so they do not need to be explicitly specified. Therefore, this function template has a more concise syntax when compared to <code class="computeroutput"><code class="computeroutput"><a class="link" href="overloaded_function.html" title="Class template overloaded_function">overloaded_function</a></code></code>. This is especially useful when the explicit type of the returned <code class="computeroutput"><code class="computeroutput"><a class="link" href="overloaded_function.html" title="Class template overloaded_function">overloaded_function</a></code></code> does not need to be known (e.g., when used with Boost.Typeof's <code class="computeroutput">BOOST_AUTO</code> (or C++11 <code class="computeroutput">auto</code>) or when the overloaded function object is deduced using a function template parameter).</p>
+<a name="id805054"></a><h2>Description</h2>
+<p>This function template creates and returns an <code class="computeroutput"><code class="computeroutput"><a class="link" href="overloaded_function.html" title="Class template overloaded_function">overloaded_function</a></code></code> function object that overloads all the specified functions <code class="computeroutput">f1</code>, <code class="computeroutput">f2</code>, etc.</p>
+<p>The function types are internally determined from the template parameter types so they do not need to be explicitly specified. Therefore, this function template usually has a more concise syntax when compared with <code class="computeroutput"><code class="computeroutput"><a class="link" href="overloaded_function.html" title="Class template overloaded_function">overloaded_function</a></code></code>. This is especially useful when the explicit type of the returned <code class="computeroutput"><code class="computeroutput"><a class="link" href="overloaded_function.html" title="Class template overloaded_function">overloaded_function</a></code></code> does not need to be known (e.g., when used with Boost.Typeof's <code class="computeroutput">BOOST_AUTO</code> (or C++11 <code class="computeroutput">auto</code>) or when the overloaded function object is deduced using a function template parameter, see the <a class="link" href="../functional_overloaded_function/Tutorial.html" title="Tutorial">Tutorial</a> sect
ion).</p>
 <p>The maximum number of functions to overload is given by the <code class="computeroutput"><code class="computeroutput"><a class="link" href="../BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX.html" title="Macro BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX">BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX</a></code></code> configuration macro.</p>
-<p><span class="bold"><strong>Note:</strong></span> <code class="computeroutput">__function_type__</code> is a placeholder in this documentation for a symbol that is specific to implementation of this library.</p>
+<p><span class="bold"><strong>Note:</strong></span> In this documentation, <code class="computeroutput">__function_type__</code> is a placeholder for a symbol that is specific to implementation of this library.</p>
 <p><span class="bold"><strong>See:</strong></span> <a class="link" href="../functional_overloaded_function/Tutorial.html" title="Tutorial">Tutorial</a> section, <code class="computeroutput"><code class="computeroutput"><a class="link" href="overloaded_function.html" title="Class template overloaded_function">overloaded_function</a></code></code>, <code class="computeroutput"><code class="computeroutput"><a class="link" href="../BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX.html" title="Macro BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX">BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX</a></code></code>. </p>
 </div>
 </div>

Modified: sandbox/closure/libs/functional/overloaded_function/doc/html/boost/overloaded_function.html
==============================================================================
--- sandbox/closure/libs/functional/overloaded_function/doc/html/boost/overloaded_function.html (original)
+++ sandbox/closure/libs/functional/overloaded_function/doc/html/boost/overloaded_function.html 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
@@ -34,40 +34,50 @@
 </span><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> F1<span class="special">,</span> <span class="keyword">typename</span> F2<span class="special">,</span> <span class="special">...</span> <span class="special">&gt;</span>
 <span class="keyword">class</span> <a class="link" href="overloaded_function.html" title="Class template overloaded_function">overloaded_function</a> <span class="special">{</span>
 <span class="keyword">public</span><span class="special">:</span>
+ <span class="comment">// <a class="link" href="overloaded_function.html#boost.overloaded_functionconstruct-copy-destruct">construct/copy/destruct</a></span>
+ <a class="link" href="overloaded_function.html#id250967-bb"><span class="identifier">overloaded_function</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">function</span><span class="special">&lt;</span> <span class="identifier">F1</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">function</span><span class="special">&lt;</span> <span class="identifier">F2</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span> <span class="special">...</span><span class="special">)</span><span class="special">;</span>
 
- <span class="comment">// <a class="link" href="overloaded_function.html#id275846-bb">public member functions</a></span>
- <a class="link" href="overloaded_function.html#id275849-bb"><span class="identifier">overload</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">function</span><span class="special">&lt;</span> <span class="identifier">F1</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">function</span><span class="special">&lt;</span> <span class="identifier">F2</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span> <span class="special">...</span><span class="special">)</span><span class="special">;</span>
+ <span class="comment">// <a class="link" href="overloaded_function.html#id250897-bb">public member functions</a></span>
   <span class="identifier">boost</span><span class="special">::</span><span class="identifier">function_traits</span><span class="special">&lt;</span> <span class="identifier">F1</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">result_type</span>
- <a class="link" href="overloaded_function.html#id275878-bb"><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span></a><span class="special">(</span><span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">function_traits</span><span class="special">&lt;</span> <span class="identifier">F1</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">arg1_type</span><span class="special">,</span>
+ <a class="link" href="overloaded_function.html#id250899-bb"><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span></a><span class="special">(</span><span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">function_traits</span><span class="special">&lt;</span> <span class="identifier">F1</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">arg1_type</span><span class="special">,</span>
              <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">function_traits</span><span class="special">&lt;</span> <span class="identifier">F1</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">arg2_type</span><span class="special">,</span> <span class="special">...</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
   <span class="identifier">boost</span><span class="special">::</span><span class="identifier">function_traits</span><span class="special">&lt;</span> <span class="identifier">F2</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">result_type</span>
- <a class="link" href="overloaded_function.html#id275904-bb"><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span></a><span class="special">(</span><span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">function_traits</span><span class="special">&lt;</span> <span class="identifier">F2</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">arg1_type</span><span class="special">,</span>
+ <a class="link" href="overloaded_function.html#id250926-bb"><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span></a><span class="special">(</span><span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">function_traits</span><span class="special">&lt;</span> <span class="identifier">F2</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">arg1_type</span><span class="special">,</span>
              <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">function_traits</span><span class="special">&lt;</span> <span class="identifier">F2</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">arg2_type</span><span class="special">,</span> <span class="special">...</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
 <span class="special">}</span><span class="special">;</span></pre></div>
 <div class="refsect1">
-<a name="id791621"></a><h2>Description</h2>
-<p>This function object aggregates together calls to functions of all the specified function types <code class="computeroutput">F1</code>, <code class="computeroutput">F2</code>, etc. The function types must be distinct from one another and they must be specified following the Boost.Function preferred syntax: </p>
+<a name="id804307"></a><h2>Description</h2>
+<p>This function object aggregates together calls to functions of all the specified function types <code class="computeroutput">F1</code>, <code class="computeroutput">F2</code>, etc. The specified function types must have distinct parameters from one another and they must be in the following format (which is the Boost.Function preferred syntax): </p>
 <pre class="programlisting"> <span class="identifier">result_type</span> <span class="special">(</span><span class="identifier">argument1_type</span><span class="special">,</span> <span class="identifier">argumgnet2_type</span><span class="special">,</span> <span class="special">...</span><span class="special">)</span>
 </pre>
-<p>In some cases, the <code class="computeroutput"><a class="link" href="make_overloaded_function.html" title="Function template make_overloaded_function">make_overloaded_function</a></code> function template can be used to construct the overloaded function object without explicitly specifying the function types.</p>
+<p>In some cases, the <code class="computeroutput"><a class="link" href="make_overloaded_function.html" title="Function template make_overloaded_function">make_overloaded_function</a></code> function template can be useful to construct the overloaded function object without explicitly specifying the function types.</p>
 <p>The maximum number of functions to overload is given by the <code class="computeroutput"><a class="link" href="../BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX.html" title="Macro BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX">BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX</a></code> configuration macro. The maximum number of function parameters for each of the specified function types is given by the <code class="computeroutput"><a class="link" href="../BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_ARITY_MAX.html" title="Macro BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_ARITY_MAX">BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_ARITY_MAX</a></code> configuration macro.</p>
 <p><span class="bold"><strong>See:</strong></span> <a class="link" href="../functional_overloaded_function/Tutorial.html" title="Tutorial">Tutorial</a> section, <code class="computeroutput"><a class="link" href="make_overloaded_function.html" title="Function template make_overloaded_function">make_overloaded_function</a></code>, <code class="computeroutput"><a class="link" href="../BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX.html" title="Macro BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX">BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX</a></code>, <code class="computeroutput"><a class="link" href="../BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_ARITY_MAX.html" title="Macro BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_ARITY_MAX">BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_ARITY_MAX</a></code>, Boost.Function. </p>
 <div class="refsect2">
-<a name="id791741"></a><h3>
-<a name="id275846-bb"></a><code class="computeroutput">overloaded_function</code> public member functions</h3>
+<a name="id804427"></a><h3>
+<a name="boost.overloaded_functionconstruct-copy-destruct"></a><code class="computeroutput">overloaded_function</code>
+ public
+ construct/copy/destruct</h3>
+<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem">
+<pre class="literallayout"><a name="id250967-bb"></a><span class="identifier">overloaded_function</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">function</span><span class="special">&lt;</span> <span class="identifier">F1</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">function</span><span class="special">&lt;</span> <span class="identifier">F2</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span> <span class="special">...</span><span class="special">)</span><span class="special">;</span></pre>Construct the overloaded function object. <p>Any function pointer, function reference, function object that can be converted to a <code class="computeroutput">boost::function</code> function object can be specified as parameter. </p>
+</li></ol></div>
+</div>
+<div class="refsect2">
+<a name="id804552"></a><h3>
+<a name="id250897-bb"></a><code class="computeroutput">overloaded_function</code> public member functions</h3>
 <div class="orderedlist"><ol class="orderedlist" type="1">
 <li class="listitem">
-<pre class="literallayout"> <a name="id275849-bb"></a><span class="identifier">overload</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">function</span><span class="special">&lt;</span> <span class="identifier">F1</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">function</span><span class="special">&lt;</span> <span class="identifier">F2</span> <span class="special">&gt;</span> <span class="special">&amp;</span><span class="special">,</span> <span class="special">...</span><span class="special">)</span><span class="special">;</span></pre>Construct the overloaded function object. <p>Any function pointer, function reference, function object that can be converted to a <code class="computeroutput">boost::function</co
de> function object can be specified as parameter. </p>
-</li>
-<li class="listitem">
 <pre class="literallayout"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">function_traits</span><span class="special">&lt;</span> <span class="identifier">F1</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">result_type</span>
-<a name="id275878-bb"></a><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span><span class="special">(</span><span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">function_traits</span><span class="special">&lt;</span> <span class="identifier">F1</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">arg1_type</span><span class="special">,</span>
- <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">function_traits</span><span class="special">&lt;</span> <span class="identifier">F1</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">arg2_type</span><span class="special">,</span> <span class="special">...</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>Call operator matching the signature of the function type specified as first template parameter. <p>This will in turn invoke the call operator of the first function passed to the constructor. </p>
+<a name="id250899-bb"></a><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span><span class="special">(</span><span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">function_traits</span><span class="special">&lt;</span> <span class="identifier">F1</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">arg1_type</span><span class="special">,</span>
+ <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">function_traits</span><span class="special">&lt;</span> <span class="identifier">F1</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">arg2_type</span><span class="special">,</span> <span class="special">...</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>Call operator matching the signature of the function type specified as 1st template parameter. <p>This will in turn invoke the call operator of the 1st function passed to the constructor. </p>
 </li>
 <li class="listitem">
 <pre class="literallayout"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">function_traits</span><span class="special">&lt;</span> <span class="identifier">F2</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">result_type</span>
-<a name="id275904-bb"></a><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span><span class="special">(</span><span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">function_traits</span><span class="special">&lt;</span> <span class="identifier">F2</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">arg1_type</span><span class="special">,</span>
- <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">function_traits</span><span class="special">&lt;</span> <span class="identifier">F2</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">arg2_type</span><span class="special">,</span> <span class="special">...</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>Call operator matching the signature of the function type specified as second template parameter. <p>This will in turn invoke the call operator of the second function passed to the constructor. </p>
+<a name="id250926-bb"></a><span class="keyword">operator</span><span class="special">(</span><span class="special">)</span><span class="special">(</span><span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">function_traits</span><span class="special">&lt;</span> <span class="identifier">F2</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">arg1_type</span><span class="special">,</span>
+ <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">function_traits</span><span class="special">&lt;</span> <span class="identifier">F2</span> <span class="special">&gt;</span><span class="special">::</span><span class="identifier">arg2_type</span><span class="special">,</span> <span class="special">...</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>Call operator matching the signature of the function type specified as 2nd template parameter. <p>This will in turn invoke the call operator of the 2nd function passed to the constructor.</p>
+<p><span class="bold"><strong>Note:</strong></span> Similar call operators are present for all specified function types <code class="computeroutput">F1</code>, <code class="computeroutput">F2</code>, etc (even if not explicitly listed by this documentation). </p>
 </li>
 </ol></div>
 </div>

Modified: sandbox/closure/libs/functional/overloaded_function/doc/html/functional_overloaded_function/Getting_Started.html
==============================================================================
--- sandbox/closure/libs/functional/overloaded_function/doc/html/functional_overloaded_function/Getting_Started.html (original)
+++ sandbox/closure/libs/functional/overloaded_function/doc/html/functional_overloaded_function/Getting_Started.html 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
@@ -57,7 +57,7 @@
         using the library.
       </p>
 <p>
- The maximum number of functions to overload is specified by the <code class="computeroutput"><a class="link" href="../BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX.html" title="Macro BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX">BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX</a></code>
+ The maximum number of functions to overload is given by the <code class="computeroutput"><a class="link" href="../BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX.html" title="Macro BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX">BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX</a></code>
         configuration macro. The maximum number of function parameters for each of
         the specified function types is given by the <code class="computeroutput"><a class="link" href="../BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX.html" title="Macro BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX">BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX</a></code>
         configuration macro. All configuration macros have appropriate default values

Modified: sandbox/closure/libs/functional/overloaded_function/doc/html/functional_overloaded_function/Tutorial.html
==============================================================================
--- sandbox/closure/libs/functional/overloaded_function/doc/html/functional_overloaded_function/Tutorial.html (original)
+++ sandbox/closure/libs/functional/overloaded_function/doc/html/functional_overloaded_function/Tutorial.html 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
@@ -27,36 +27,37 @@
 <a name="functional_overloaded_function.Tutorial"></a><a class="link" href="Tutorial.html" title="Tutorial">Tutorial</a>
 </h2></div></div></div>
 <div class="toc"><dl>
-<dt><span class="section"><a href="Tutorial.html#functional_overloaded_function.Tutorial.function_object">Function
- Object</a></span></dt>
-<dt><span class="section"><a href="Tutorial.html#functional_overloaded_function.Tutorial.making_the_function_object">Making
- the Function Object</a></span></dt>
+<dt><span class="section">Overloading</span></dt>
+<dt><span class="section"><a href="Tutorial.html#functional_overloaded_function.Tutorial.without_function_types">Without
+ Function Types</a></span></dt>
 </dl></div>
 <p>
       This section explains how to use this library.
     </p>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="functional_overloaded_function.Tutorial.function_object"></a><a class="link" href="Tutorial.html#functional_overloaded_function.Tutorial.function_object" title="Function Object">Function
- Object</a>
+<a name="functional_overloaded_function.Tutorial.overloading"></a><a class="link" href="Tutorial.html#functional_overloaded_function.Tutorial.overloading" title="Overloading">Overloading</a>
 </h3></div></div></div>
 <p>
         Consider the following functions with distinct signatures:
       </p>
 <p>
 </p>
-<pre class="programlisting"><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;</span> <span class="identifier">identity_s</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">{</span> <span class="keyword">return</span> <span class="identifier">x</span><span class="special">;</span> <span class="special">}</span>
-<span class="keyword">int</span> <span class="identifier">identity_i</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">{</span> <span class="keyword">return</span> <span class="identifier">x</span><span class="special">;</span> <span class="special">}</span>
+<pre class="programlisting"><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;</span> <span class="identifier">identity_s</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">{</span> <span class="keyword">return</span> <span class="identifier">x</span><span class="special">;</span> <span class="special">}</span> <span class="comment">// As pointer.</span>
+
+<span class="keyword">int</span> <span class="identifier">identity_i_impl</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">{</span> <span class="keyword">return</span> <span class="identifier">x</span><span class="special">;</span> <span class="special">}</span>
+<span class="keyword">int</span> <span class="special">(&amp;</span><span class="identifier">identity_i</span><span class="special">)(</span><span class="keyword">int</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">identity_i_impl</span><span class="special">;</span> <span class="comment">// Function reference.</span>
+
 <span class="keyword">double</span> <span class="identifier">identity_d_impl</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">{</span> <span class="keyword">return</span> <span class="identifier">x</span><span class="special">;</span> <span class="special">}</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">function</span><span class="special">&lt;</span><span class="keyword">double</span> <span class="special">(</span><span class="keyword">double</span><span class="special">)&gt;</span> <span class="identifier">identity_d</span> <span class="special">=</span> <span class="identifier">identity_d_impl</span><span class="special">;</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">function</span><span class="special">&lt;</span><span class="keyword">double</span> <span class="special">(</span><span class="keyword">double</span><span class="special">)&gt;</span> <span class="identifier">identity_d</span> <span class="special">=</span> <span class="identifier">identity_d_impl</span><span class="special">;</span> <span class="comment">// Functor.</span>
 </pre>
 <p>
       </p>
 <p>
         This library provides a <code class="computeroutput"><a class="link" href="../boost/overloaded_function.html" title="Class template overloaded_function">boost::overloaded_function</a></code>
         class template that creates a single overloaded function object that can
- be used to call all the specified functions instead of using the separate
- function names (see also "overloaded_function.cpp"):
+ be used to call the specified functions instead of using the separate function
+ names (see also "overloaded_function.cpp"):
       </p>
 <p>
 </p>
@@ -82,27 +83,34 @@
         are passed as template parameters to the <code class="computeroutput"><a class="link" href="../boost/overloaded_function.html" title="Class template overloaded_function">boost::overloaded_function</a></code>
         class template. Then the relative function pointers, function references,
         or monomorphic function objects are passed to the <code class="computeroutput"><a class="link" href="../boost/overloaded_function.html" title="Class template overloaded_function">boost::overloaded_function</a></code>
- constructor matching the order of the specified template parameters. <sup>[<a name="functional_overloaded_function.Tutorial.function_object.f0" href="#ftn.functional_overloaded_function.Tutorial.function_object.f0" class="footnote">2</a>]</sup> All specified function types must be distinct from one another.
- In order to create an overloaded function object, it is necessary to specify
- at least two function types (because there is nothing to overload between
- one or zero functions).
+ constructor matching the order of the specified template parameters. <sup>[<a name="functional_overloaded_function.Tutorial.overloading.f0" href="#ftn.functional_overloaded_function.Tutorial.overloading.f0" class="footnote">2</a>]</sup> In the above example, <code class="computeroutput"><span class="identifier">identity_s</span></code>
+ is passed as function pointer (the function address is automatically taken
+ from the function name by compiler), <code class="computeroutput"><span class="identifier">identity_i</span></code>
+ as function reference, and <code class="computeroutput"><span class="identifier">identity_d</span></code>
+ as function object.
+ </p>
+<p>
+ All specified function types must have distinct parameters from one another
+ (so the overloaded calls can be resolved by this library). <sup>[<a name="functional_overloaded_function.Tutorial.overloading.f1" href="#ftn.functional_overloaded_function.Tutorial.overloading.f1" class="footnote">3</a>]</sup> In order to create an overloaded function object, it is necessary
+ to specify at least two function types (because there is nothing to overload
+ between one or zero functions).
       </p>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="functional_overloaded_function.Tutorial.making_the_function_object"></a><a class="link" href="Tutorial.html#functional_overloaded_function.Tutorial.making_the_function_object" title="Making the Function Object">Making
- the Function Object</a>
+<a name="functional_overloaded_function.Tutorial.without_function_types"></a><a class="link" href="Tutorial.html#functional_overloaded_function.Tutorial.without_function_types" title="Without Function Types">Without
+ Function Types</a>
 </h3></div></div></div>
 <p>
         For convenience, this library also provides the <code class="computeroutput"><a class="link" href="../boost/make_overloaded_function.html" title="Function template make_overloaded_function">boost::make_overloaded_function</a></code>
         function template which allows to create the overloaded function object without
         explicitly specifying the function types. The function types are automatically
         deduced from the specified functions and the appropriate <code class="computeroutput"><a class="link" href="../boost/overloaded_function.html" title="Class template overloaded_function">boost::overloaded_function</a></code>
- type is returned by <code class="computeroutput"><a class="link" href="../boost/make_overloaded_function.html" title="Function template make_overloaded_function">boost::make_overloaded_function</a></code>.
+ instantiation is returned by <code class="computeroutput"><a class="link" href="../boost/make_overloaded_function.html" title="Function template make_overloaded_function">boost::make_overloaded_function</a></code>.
       </p>
 <p>
         The <code class="computeroutput"><a class="link" href="../boost/make_overloaded_function.html" title="Function template make_overloaded_function">boost::make_overloaded_function</a></code>
- function template can useful when used together with Boost.Typeof's
+ function template can be useful when used together with Boost.Typeof's
         <code class="computeroutput"><span class="identifier">BOOST_AUTO</span></code> (or C++11 <code class="computeroutput"><span class="keyword">auto</span></code>). For example (see also "overloaded_function.cpp"):
       </p>
 <p>
@@ -122,9 +130,11 @@
         <code class="computeroutput"><span class="identifier">identity_i</span></code>, <code class="computeroutput"><span class="identifier">identity_d</span></code> and without specifying the function
         types <code class="computeroutput"><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;</span> <span class="special">(</span><span class="keyword">const</span>
         <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;)</span></code>,
- etc as required instead by <code class="computeroutput"><a class="link" href="../boost/overloaded_function.html" title="Class template overloaded_function">boost::overloaded_function</a></code>.
+ <code class="computeroutput"><span class="keyword">int</span> <span class="special">(</span><span class="keyword">int</span><span class="special">)</span></code>, and
+ <code class="computeroutput"><span class="keyword">double</span> <span class="special">(</span><span class="keyword">double</span><span class="special">)</span></code> as
+ required instead by <code class="computeroutput"><a class="link" href="../boost/overloaded_function.html" title="Class template overloaded_function">boost::overloaded_function</a></code>.
         Therefore, <code class="computeroutput"><a class="link" href="../boost/make_overloaded_function.html" title="Function template make_overloaded_function">boost::make_overloaded_function</a></code>
- provides a more concise syntax when compared to <code class="computeroutput"><a class="link" href="../boost/overloaded_function.html" title="Class template overloaded_function">boost::overloaded_function</a></code>.
+ provides a more concise syntax in this context when compared with <code class="computeroutput"><a class="link" href="../boost/overloaded_function.html" title="Class template overloaded_function">boost::overloaded_function</a></code>.
       </p>
 <p>
         Another case where <code class="computeroutput"><a class="link" href="../boost/make_overloaded_function.html" title="Function template make_overloaded_function">boost::make_overloaded_function</a></code>
@@ -152,7 +162,7 @@
 </div>
 <div class="footnotes">
 <br><hr width="100" align="left">
-<div class="footnote"><p><sup>[<a id="ftn.functional_overloaded_function.Tutorial.function_object.f0" href="#functional_overloaded_function.Tutorial.function_object.f0" class="para">2</a>] </sup>
+<div class="footnote"><p><sup>[<a id="ftn.functional_overloaded_function.Tutorial.overloading.f0" href="#functional_overloaded_function.Tutorial.overloading.f0" class="para">2</a>] </sup>
           Function pointers are of the form <code class="computeroutput"><span class="identifier">result_type</span>
           <span class="special">(*)(</span><span class="identifier">argument1_type</span><span class="special">,</span> <span class="special">...)</span></code> (the
           C++ compiler is usually able to automatically promote a function name to
@@ -168,6 +178,12 @@
           are instances of classes with a non-template call operator of the form
           <code class="computeroutput"><span class="identifier">result_type</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">argument1_type</span><span class="special">,</span> <span class="special">...)</span></code>.
         </p></div>
+<div class="footnote"><p><sup>[<a id="ftn.functional_overloaded_function.Tutorial.overloading.f1" href="#functional_overloaded_function.Tutorial.overloading.f1" class="para">3</a>] </sup>
+ Note that in C++ the function result type is not used for overload resolution
+ (to avoid making the overload resolution context dependent). Therefore,
+ at least one of the function parameters must be distinct for each specified
+ function type.
+ </p></div>
 </div>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>

Modified: sandbox/closure/libs/functional/overloaded_function/doc/html/functional_overloaded_function/acknowledgments.html
==============================================================================
--- sandbox/closure/libs/functional/overloaded_function/doc/html/functional_overloaded_function/acknowledgments.html (original)
+++ sandbox/closure/libs/functional/overloaded_function/doc/html/functional_overloaded_function/acknowledgments.html 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
@@ -26,7 +26,7 @@
 <a name="functional_overloaded_function.acknowledgments"></a><a class="link" href="acknowledgments.html" title="Acknowledgments">Acknowledgments</a>
 </h2></div></div></div>
 <p>
- May thanks to Mathias Gaunard for suggesting to implement <code class="computeroutput"><a class="link" href="../boost/overloaded_function.html" title="Class template overloaded_function">boost::overloaded_function</a></code>
+ Many thanks to Mathias Gaunard for suggesting to implement <code class="computeroutput"><a class="link" href="../boost/overloaded_function.html" title="Class template overloaded_function">boost::overloaded_function</a></code>
       and for some sample code.
     </p>
 <p>

Modified: sandbox/closure/libs/functional/overloaded_function/doc/html/index.html
==============================================================================
--- sandbox/closure/libs/functional/overloaded_function/doc/html/index.html (original)
+++ sandbox/closure/libs/functional/overloaded_function/doc/html/index.html 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
@@ -46,10 +46,9 @@
 </dl></dd>
 <dt><span class="section">Tutorial</span></dt>
 <dd><dl>
-<dt><span class="section"><a href="functional_overloaded_function/Tutorial.html#functional_overloaded_function.Tutorial.function_object">Function
- Object</a></span></dt>
-<dt><span class="section"><a href="functional_overloaded_function/Tutorial.html#functional_overloaded_function.Tutorial.making_the_function_object">Making
- the Function Object</a></span></dt>
+<dt><span class="section">Overloading</span></dt>
+<dt><span class="section"><a href="functional_overloaded_function/Tutorial.html#functional_overloaded_function.Tutorial.without_function_types">Without
+ Function Types</a></span></dt>
 </dl></dd>
 <dt><span class="section">Reference</span></dt>
 <dd><dl>
@@ -60,8 +59,7 @@
 </dl>
 </div>
 <p>
- This library allows to overload function pointers, function references, and function
- objects into a single function object.
+ This library allows to overload different functions into a single function object.
   </p>
 <div class="section">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -72,15 +70,18 @@
     </p>
 <p>
 </p>
-<pre class="programlisting"><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;</span> <span class="identifier">identity_s</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">{</span> <span class="keyword">return</span> <span class="identifier">x</span><span class="special">;</span> <span class="special">}</span>
-<span class="keyword">int</span> <span class="identifier">identity_i</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">{</span> <span class="keyword">return</span> <span class="identifier">x</span><span class="special">;</span> <span class="special">}</span>
+<pre class="programlisting"><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;</span> <span class="identifier">identity_s</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">{</span> <span class="keyword">return</span> <span class="identifier">x</span><span class="special">;</span> <span class="special">}</span> <span class="comment">// As pointer.</span>
+
+<span class="keyword">int</span> <span class="identifier">identity_i_impl</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">{</span> <span class="keyword">return</span> <span class="identifier">x</span><span class="special">;</span> <span class="special">}</span>
+<span class="keyword">int</span> <span class="special">(&amp;</span><span class="identifier">identity_i</span><span class="special">)(</span><span class="keyword">int</span><span class="special">)</span> <span class="special">=</span> <span class="identifier">identity_i_impl</span><span class="special">;</span> <span class="comment">// Function reference.</span>
+
 <span class="keyword">double</span> <span class="identifier">identity_d_impl</span><span class="special">(</span><span class="keyword">double</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">{</span> <span class="keyword">return</span> <span class="identifier">x</span><span class="special">;</span> <span class="special">}</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">function</span><span class="special">&lt;</span><span class="keyword">double</span> <span class="special">(</span><span class="keyword">double</span><span class="special">)&gt;</span> <span class="identifier">identity_d</span> <span class="special">=</span> <span class="identifier">identity_d_impl</span><span class="special">;</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">function</span><span class="special">&lt;</span><span class="keyword">double</span> <span class="special">(</span><span class="keyword">double</span><span class="special">)&gt;</span> <span class="identifier">identity_d</span> <span class="special">=</span> <span class="identifier">identity_d_impl</span><span class="special">;</span> <span class="comment">// Functor.</span>
 </pre>
 <p>
     </p>
 <p>
- Instead of calling them using their separate names (<code class="computeroutput"><span class="identifier">BOOST_CHECK</span></code>
+ Instead of calling them using their separate names (here <code class="computeroutput"><span class="identifier">BOOST_CHECK</span></code>
       is equivalent to <code class="computeroutput"><span class="identifier">assert</span></code>):
       <sup>[<a name="functional_overloaded_function.Introduction.f0" href="#ftn.functional_overloaded_function.Introduction.f0" class="footnote">1</a>]</sup>
     </p>
@@ -131,7 +132,7 @@
 </div>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: January 17, 2012 at 22:13:13 GMT</small></p></td>
+<td align="left"><p><small>Last revised: January 18, 2012 at 15:25:52 GMT</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>

Modified: sandbox/closure/libs/functional/overloaded_function/doc/html/reference.html
==============================================================================
--- sandbox/closure/libs/functional/overloaded_function/doc/html/reference.html (original)
+++ sandbox/closure/libs/functional/overloaded_function/doc/html/reference.html 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
@@ -43,7 +43,7 @@
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="header.boost.functional.overloaded_function.config_hpp"></a>Header &lt;boost/functional/overloaded_function/config.hpp&gt;</h3></div></div></div>
-<p>Macros to change the compile-time configuration of this library. </p>
+<p>Change the compile-time configuration of this library. </p>
 <pre class="synopsis">
 
 <a class="link" href="BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_ARITY_MAX.html" title="Macro BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_ARITY_MAX">BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_ARITY_MAX</a>

Modified: sandbox/closure/libs/functional/overloaded_function/doc/overloaded_function.qbk
==============================================================================
--- sandbox/closure/libs/functional/overloaded_function/doc/overloaded_function.qbk (original)
+++ sandbox/closure/libs/functional/overloaded_function/doc/overloaded_function.qbk 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
@@ -2,16 +2,17 @@
 [library Boost.Functional/OverloadedFunction
     [quickbook 1.5]
     [version 1.0.0]
- [copyright 2012Lorenzo Caminiti]
- [purpose overload functions]
+ [copyright 2012 Lorenzo Caminiti]
+ [purpose overload functions with one function object]
     [license
         Distributed under the Boost Software License, Version 1.0.
         (See accompanying file LICENSE_1_0.txt or copy at
         [@http://www.boost.org/LICENSE_1_0.txt])
     ]
- [authors [Caminiti, Lorenzo]]
+ [authors [Caminiti <email>lorcaminiti_at_[hidden]</email>, Lorenzo]]
     [category Function Objects and Higher-Order Programming]
     [id functional_overloaded_function]
+ [dirname functional_overloaded_function]
 ]
 
 [def __Introduction__ [link functional_overloaded_function.Introduction Introduction]]
@@ -23,7 +24,7 @@
 
 [import ../test/overloaded_function.cpp]
 
-This library allows to overload function pointers, function references, and function objects into a single function object.
+This library allows to overload different functions into a single function object.
 
 [section:Introduction Introduction]
 
@@ -31,7 +32,7 @@
 
 [test_overloaded_function_declarations]
 
-Instead of calling them using their separate names (`BOOST_CHECK` is equivalent to `assert`):
+Instead of calling them using their separate names (here `BOOST_CHECK` is equivalent to `assert`):
 [footnote
 In the examples presented in this documentation, `BOOST_CHECK` is used instead of `assert` because it allows to write regression tests using __Boost_Test__.
 The examples of this documentation are executed as part of the library test suite to verify that they always compile and run correctly.
@@ -63,7 +64,7 @@
 Therefore there is no pre-compiled object file which needs to be installed.
 Programmers can simply instruct the compiler where to find the library header files (`-I` option on GCC, `/I` option on MSVC, etc) and compile code using the library.
 
-The maximum number of functions to overload is specified by the [macroref BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX] configuration macro.
+The maximum number of functions to overload is given by the [macroref BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX] configuration macro.
 The maximum number of function parameters for each of the specified function types is given by the [macroref BOOST_FUNCTIONAL_OVERLOADED_FUNCTION_CONFIG_OVERLOAD_MAX] configuration macro.
 All configuration macros have appropriate default values when they are left undefined by the user.
 
@@ -75,13 +76,13 @@
 
 This section explains how to use this library.
 
-[section Function Object]
+[section Overloading]
 
 Consider the following functions with distinct signatures:
 
 [test_overloaded_function_declarations]
 
-This library provides a [classref boost::overloaded_function] class template that creates a single overloaded function object that can be used to call all the specified functions instead of using the separate function names (see also [@../../test/overloaded_function.cpp `"overloaded_function.cpp"`]):
+This library provides a [classref boost::overloaded_function] class template that creates a single overloaded function object that can be used to call the specified functions instead of using the separate function names (see also [@../../test/overloaded_function.cpp `"overloaded_function.cpp"`]):
 
 [test_overloaded_function]
 
@@ -97,23 +98,29 @@
 Function types are of the form `result_type (argument1_type, ...)` (note how they lack of both `*` and `&` when compared to function pointers and function references).
 Finally, monomorphic function objects are instances of classes with a non-template call operator of the form `result_type operator()(argument1_type, ...)`.
 ]
-All specified function types must be distinct from one another.
+In the above example, `identity_s` is passed as function pointer (the function address is automatically taken from the function name by compiler), `identity_i` as function reference, and `identity_d` as function object.
+
+All specified function types must have distinct parameters from one another (so the overloaded calls can be resolved by this library).
+[footnote
+Note that in C++ the function result type is not used for overload resolution (to avoid making the overload resolution context dependent).
+Therefore, at least one of the function parameters must be distinct for each specified function type.
+]
 In order to create an overloaded function object, it is necessary to specify at least two function types (because there is nothing to overload between one or zero functions).
 
 [endsect]
 
-[section Making the Function Object]
+[section Without Function Types]
 
 For convenience, this library also provides the [funcref boost::make_overloaded_function] function template which allows to create the overloaded function object without explicitly specifying the function types.
-The function types are automatically deduced from the specified functions and the appropriate [classref boost::overloaded_function] type is returned by [funcref boost::make_overloaded_function].
+The function types are automatically deduced from the specified functions and the appropriate [classref boost::overloaded_function] instantiation is returned by [funcref boost::make_overloaded_function].
 
-The [funcref boost::make_overloaded_function] function template can useful when used together with __Boost_Typeof__'s `BOOST_AUTO` (or C++11 `auto`).
+The [funcref boost::make_overloaded_function] function template can be useful when used together with __Boost_Typeof__'s `BOOST_AUTO` (or C++11 `auto`).
 For example (see also [@../../test/overloaded_function.cpp `"overloaded_function.cpp"`]):
 
 [test_make_overloaded_function]
 
-Note how the overloaded function object `identity` has been created specifying only the functions `identity_s`, `identity_i`, `identity_d` and without specifying the function types `const std::string& (const std::string&)`, etc as required instead by [classref boost::overloaded_function].
-Therefore, [funcref boost::make_overloaded_function] provides a more concise syntax when compared to [classref boost::overloaded_function].
+Note how the overloaded function object `identity` has been created specifying only the functions `identity_s`, `identity_i`, `identity_d` and without specifying the function types `const std::string& (const std::string&)`, `int (int)`, and `double (double)` as required instead by [classref boost::overloaded_function].
+Therefore, [funcref boost::make_overloaded_function] provides a more concise syntax in this context when compared with [classref boost::overloaded_function].
 
 Another case where [funcref boost::make_overloaded_function] can be useful is when the overloaded function object is passed to a function template which can hide the specific [classref boost::overloaded_function] type using a template parameter.
 For example (see also [@../../test/overloaded_function.cpp `"overloaded_function.cpp"`]):
@@ -129,7 +136,7 @@
 
 [section Acknowledgments]
 
-May thanks to Mathias Gaunard for suggesting to implement [classref boost::overloaded_function] and for some sample code.
+Many thanks to Mathias Gaunard for suggesting to implement [classref boost::overloaded_function] and for some sample code.
 
 Thanks to John Bytheway for suggesting to implement [funcref boost::make_overloaded_function].
 

Modified: sandbox/closure/libs/functional/overloaded_function/test/Jamfile.v2
==============================================================================
--- sandbox/closure/libs/functional/overloaded_function/test/Jamfile.v2 (original)
+++ sandbox/closure/libs/functional/overloaded_function/test/Jamfile.v2 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,6 @@
 
 project : requirements
     <library>/boost//unit_test_framework
- <link>static
 ;
 
 test-suite world_tests :

Modified: sandbox/closure/libs/functional/overloaded_function/test/overloaded_function.cpp
==============================================================================
--- sandbox/closure/libs/functional/overloaded_function/test/overloaded_function.cpp (original)
+++ sandbox/closure/libs/functional/overloaded_function/test/overloaded_function.cpp 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
@@ -15,10 +15,13 @@
 //]
 
 //[test_overloaded_function_declarations
-const std::string& identity_s(const std::string& x) { return x; }
-int identity_i(int x) { return x; }
+const std::string& identity_s(const std::string& x) { return x; } // As pointer.
+
+int identity_i_impl(int x) { return x; }
+int (&identity_i)(int) = identity_i_impl; // Function reference.
+
 double identity_d_impl(double x) { return x; }
-boost::function<double (double)> identity_d = identity_d_impl;
+boost::function<double (double)> identity_d = identity_d_impl; // Functor.
 //]
 
 BOOST_AUTO_TEST_CASE( test_overloaded_function ) {

Deleted: /sandbox/closure/libs/closure/example/Jamfile.jam
==============================================================================
--- /sandbox/closure/libs/closure/example/Jamfile.jam 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
+++ (empty file)
@@ -1,22 +0,0 @@
-
-exe profile_boost_closure : profile_boost_closure.cpp :
- <library>/boost/chrono//boost_chrono
- <library>/boost/system//boost_system
- <link>static
-;
-exe profile_boost_closure_inline : profile_boost_closure_inline.cpp :
- <library>/boost/chrono//boost_chrono
- <library>/boost/system//boost_system
- <link>static
-;
-exe profile_local_functor : profile_local_functor.cpp :
- <library>/boost/chrono//boost_chrono
- <library>/boost/system//boost_system
- <link>static
-;
-exe profile_boost_phoenix : profile_boost_phoenix.cpp :
- <library>/boost/chrono//boost_chrono
- <library>/boost/system//boost_system
- <link>static
-;
-

Copied: sandbox/closure/libs/local_function/example/Jamfile.v2 (from r76567, /sandbox/closure/libs/closure/example/Jamfile.jam)
==============================================================================
--- /sandbox/closure/libs/closure/example/Jamfile.jam (original)
+++ sandbox/closure/libs/local_function/example/Jamfile.v2 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
@@ -1,22 +1,46 @@
 
-exe profile_boost_closure : profile_boost_closure.cpp :
- <library>/boost/chrono//boost_chrono
- <library>/boost/system//boost_system
- <link>static
-;
-exe profile_boost_closure_inline : profile_boost_closure_inline.cpp :
- <library>/boost/chrono//boost_chrono
- <library>/boost/system//boost_system
- <link>static
-;
-exe profile_local_functor : profile_local_functor.cpp :
- <library>/boost/chrono//boost_chrono
- <library>/boost/system//boost_system
- <link>static
-;
-exe profile_boost_phoenix : profile_boost_phoenix.cpp :
- <library>/boost/chrono//boost_chrono
- <library>/boost/system//boost_system
- <link>static
+import testing ;
+
+project : requirements
+ <library>/boost//unit_test_framework
 ;
 
+compile-fail const_block.cpp ;
+run const_block_ok.cpp ;
+run scope_exit.cpp ;
+
+#run gcc_lambda.cpp ;
+#run gcc_lambda_cpp11.cpp ;
+
+run gcc_access.cpp ;
+run gcc_square.cpp ;
+#run gcc_store.cpp ;
+
+#run impl_factorial.cpp ;
+run impl_pp_keyword.cpp ;
+run impl_tparam_tricks.cpp ;
+
+run n2529_this.cpp ;
+run n2550_find_if.cpp ;
+
+#exe profile_boost_closure : profile_boost_closure.cpp :
+# <library>/boost/chrono//boost_chrono
+# <library>/boost/system//boost_system
+# <link>static
+#;
+#exe profile_boost_closure_inline : profile_boost_closure_inline.cpp :
+# <library>/boost/chrono//boost_chrono
+# <library>/boost/system//boost_system
+# <link>static
+#;
+#exe profile_local_functor : profile_local_functor.cpp :
+# <library>/boost/chrono//boost_chrono
+# <library>/boost/system//boost_system
+# <link>static
+#;
+#exe profile_boost_phoenix : profile_boost_phoenix.cpp :
+# <library>/boost/chrono//boost_chrono
+# <library>/boost/system//boost_system
+# <link>static
+#;
+

Deleted: /sandbox/closure/libs/closure/example/add.cpp
==============================================================================
--- /sandbox/closure/libs/closure/example/add.cpp 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
+++ (empty file)
@@ -1,22 +0,0 @@
-
-//[example_add_cpp
-#include <boost/closure.hpp>
-#include <algorithm>
-#include <cstdlib>
-
-int main(void) {
- int sum = 0, factor = 10;
-
- void BOOST_CLOSURE(int num, const bind factor, bind& sum) {
- sum += factor * num;
- } BOOST_CLOSURE_END(add)
-
- add(1); // Call the function closure.
-
- int nums[] = {2, 3};
- std::for_each(nums, nums + 2, add); // Pass the closure to an algorithm.
-
- return (sum == 60) ? EXIT_SUCCESS : EXIT_FAILURE;
-}
-//]
-

Deleted: /sandbox/closure/libs/closure/example/add_lambda.cpp
==============================================================================
--- /sandbox/closure/libs/closure/example/add_lambda.cpp 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
+++ (empty file)
@@ -1,22 +0,0 @@
-
-//[example_add_lambda_cpp
-#include <boost/closure.hpp>
-#include <algorithm>
-#include <cstdlib>
-
-int main(void) {
- int sum = 0, factor = 10;
-
- auto add = [factor, &sum](int num) {
- sum += factor * num;
- };
-
- add(1); // Call the lambda function.
-
- int nums[] = {2, 3};
- std::for_each(nums, nums + 2, add); // Pass the lambda to an algorithm.
-
- return (sum == 60) ? EXIT_SUCCESS : EXIT_FAILURE;
-}
-//]
-

Deleted: /sandbox/closure/libs/closure/example/function_types.cpp
==============================================================================
--- /sandbox/closure/libs/closure/example/function_types.cpp 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
+++ (empty file)
@@ -1,7 +0,0 @@
-
-int main(void) {
- int x
- int BOOST_CLOSURE(
- return 0;
-}
-

Modified: sandbox/closure/libs/local_function/example/gcc_lambda.cpp
==============================================================================
--- /sandbox/closure/libs/closure/example/gcc_lambda.cpp (original)
+++ sandbox/closure/libs/local_function/example/gcc_lambda.cpp 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
@@ -1,10 +1,11 @@
 
-//[example_add_cpp
-#include <gcc_lambda.hpp>
+#include "gcc_lambda.hpp"
+#define BOOST_TEST_MODULE ExampleGccLambda
+#include <boost/test/unit_test.hpp>
 #include <algorithm>
-#include <cstdlib>
 
-int main(void) {
+BOOST_AUTO_TEST_CASE( example_gcc_lambda ) {
+ //[example_gcc_lambda
     int val = 2;
     int nums[] = {1, 2, 3};
     int* end = nums + 3;
@@ -12,10 +13,11 @@
     int* iter = std::find_if(nums, end,
         GCC_LAMBDA(const bind val, int num, return bool) {
             return num == val;
- } GCC_LAMDA_END
+ } GCC_LAMBDA_END
     );
+ //]
 
- return (iter != end) ? EXIT_SUCCESS : EXIT_FAILURE;
+ BOOST_CHECK( iter != end );
+ BOOST_CHECK( *iter == val );
 }
-//]
 

Modified: sandbox/closure/libs/local_function/example/gcc_lambda.hpp
==============================================================================
--- /sandbox/closure/libs/closure/example/gcc_lambda.hpp (original)
+++ sandbox/closure/libs/local_function/example/gcc_lambda.hpp 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
@@ -1,34 +1,114 @@
 
-//[example_gcc_lambda_hpp
-// Header: gcc_lambda.hpp
 #ifndef GCC_LAMBDA_HPP_
 #define GCC_LAMBDA_HPP_
 
-#include <boost/closure.hpp>
+#include <boost/local_function.hpp>
+#include <boost/local_function/detail/preprocessor/void_list.hpp>
+#include <boost/local_function/detail/preprocessor/line_counter.hpp>
+#include <boost/local_function/detail/preprocessor/keyword/return.hpp>
+#include <boost/local_function/detail/preprocessor/keyword/const_bind.hpp>
+#include <boost/local_function/detail/preprocessor/keyword/bind.hpp>
+#include <boost/preprocessor/list/for_each_i.hpp>
+#include <boost/preprocessor/list/fold_left.hpp>
+#include <boost/preprocessor/list/append.hpp>
+#include <boost/preprocessor/list/enum.hpp>
+#include <boost/preprocessor/list/adt.hpp>
+#include <boost/preprocessor/tuple/elem.hpp>
+#include <boost/preprocessor/tuple/eat.hpp>
+#include <boost/preprocessor/control/iif.hpp>
+#include <boost/preprocessor/punctuation/comma_if.hpp>
+#include <boost/preprocessor/facilities/expand.hpp>
+#include <boost/preprocessor/cat.hpp>
+#include <boost/config.hpp>
 
-// PUBLIC //
+// PRIVATE //
 
-// void | [const] bind[&] var_ | type_ name_ [, default value_] | return type_
-#define GCC_LAMBDA(...) \
- ({ /* open a GCC expression statement (GCC extension only) */ \
- BOOST_CLOSURE(GCC_LAMBDA_RETURN_( \
- BOOST_CLOSURE_DETAIL_PP_VARIADIC_TO_SEQ(__VA_ARGS__)))
-
-#define GCC_LAMBDA_END \
- BOOST_CLOSURE_END(BOOST_PP_CAT(gcc_lambda_, __LINE__)) \
- BOOST_PP_CAT(gcc_lambda, __LINE__); /* expr stmt returns the lambda */ \
- }) /* close the GCC expression statement (GCC extension only) */
+#define GCC_LAMBDA_SPLIT_BIND_(elem, binds, params, results) \
+ (BOOST_PP_LIST_APPEND(binds, (elem, BOOST_PP_NIL)), params, results)
 
-// PRIVATE //
+#define GCC_LAMBDA_SPLIT_PARAM_(elem, binds, params, results) \
+ (binds, BOOST_PP_LIST_APPEND(params, (elem, BOOST_PP_NIL)), results)
+
+#define GCC_LAMBDA_SPLIT_RESULT_(elem, binds, params, results) \
+ (binds, params, BOOST_PP_LIST_APPEND(results, (elem, BOOT_PP_NIL)))
+
+#define GCC_LAMBDA_SPLIT_DISPATCH_(d, binds_params_results, elem) \
+ BOOST_PP_IIF(BOOST_LOCAL_FUNCTION_DETAIL_PP_KEYWORD_IS_RETURN_FRONT(elem), \
+ GCC_LAMBDA_SPLIT_RESULT_ \
+ , BOOST_PP_IIF(BOOST_LOCAL_FUNCTION_DETAIL_PP_KEYWORD_IS_BIND_FRONT(elem), \
+ GCC_LAMBDA_SPLIT_BIND_ \
+ , BOOST_PP_IIF(BOOST_LOCAL_FUNCTION_DETAIL_PP_KEYWORD_IS_CONST_BIND_FRONT( \
+ elem), \
+ GCC_LAMBDA_SPLIT_BIND_ \
+ , /* no result, no bind, and no const bind so it's param */ \
+ GCC_LAMBDA_SPLIT_PARAM_ \
+ )))(elem, BOOST_PP_TUPLE_ELEM(3, 0, binds_params_results), \
+ BOOST_PP_TUPLE_ELEM(3, 1, binds_params_results), \
+ BOOST_PP_TUPLE_ELEM(3, 2, binds_params_results))
+
+#define GCC_LAMBDA_SPLIT_(list) \
+ BOOST_PP_LIST_FOLD_LEFT(GCC_LAMBDA_SPLIT_DISPATCH_, \
+ (BOOST_PP_NIL, BOOST_PP_NIL, BOOST_PP_NIL), list)
+
+#define GCC_LAMBDA_REMOVE_CONST_BIND_(r, unused, i, elem) \
+ BOOST_PP_COMMA_IF(i) \
+ BOOST_LOCAL_FUNCTION_DETAIL_PP_KEYWORD_CONST_BIND_REMOVE_FRONT(elem)
+
+#define GCC_LAMBDA_RESULT_TYPE_(results) \
+ BOOST_LOCAL_FUNCTION_DETAIL_PP_KEYWORD_RETURN_REMOVE_FRONT( \
+ BOOST_PP_LIST_FIRST(results))
+
+#ifdef BOOST_NO_LAMBDAS
+# define GCC_LAMBDA_(binds, params, results) \
+ ({ /* open statement expression (GCC extension only) */ \
+ BOOST_LOCAL_FUNCTION( \
+ BOOST_PP_LIST_ENUM(BOOST_PP_LIST_APPEND(binds, \
+ BOOST_PP_LIST_APPEND(params, \
+ BOOST_PP_IIF(BOOST_PP_LIST_IS_NIL(results), \
+ (return void, BOOST_PP_NIL) /* default for lambdas */ \
+ , \
+ results \
+ )\
+ ) \
+ )) \
+ )
+#else
+# define GCC_LAMBDA_(binds, params, results) \
+ /* ignore const binding because not supported by C++11 lambdas */ \
+ [ BOOST_PP_LIST_FOR_EACH_I(GCC_LAMBDA_REMOVE_CONST_BIND_, ~, binds) ] \
+ ( BOOST_PP_LIST_ENUM(params) ) \
+ BOOST_PP_IIF(BOOST_PP_LIST_IS_NIL(results), \
+ BOOST_PP_TUPLE_EAT(1) /* void result type (default) */ \
+ , \
+ -> GCC_LAMBDA_RESULT_TYPE_ \
+ )(results)
+#endif
+
+#define GCC_LAMBDA_END_(id) \
+ BOOST_LOCAL_FUNCTION_NAME(BOOST_PP_CAT(gcc_lambda_, id)) \
+ BOOST_PP_CAT(gcc_lambda_, id); \
+ }) /* close statement expression (GCC extension only) */
+
+// PUBLIC //
 
-#define GCC_LAMBDA_RETURN_(sign_seq) \
- BOOST_PP_IIF(BOOST_CLOSURE_DETAIL_PP_KEYWORD_IS_RETURN_FRONT( \
- BOOST_PP_SEQ_HEAD(BOOST_PP_SEQ_REVERSE(sign_seq))), \
- sign_seq /* keep result type specified by user */ \
- , \
- sign_seq (return void) /* automatically void if no return specified */ \
- )
+// Same arguments as for local functions but respect to C++11 lambdas:
+// const bind v is =v, bind& v is &v, void if no return specified, no = or &.
+#ifdef BOOST_NO_VARIADIC_MACROS
+# define GCC_LAMBDA(void_or_seq) \
+ BOOST_PP_EXPAND(GCC_LAMBDA_ GCC_LAMBDA_SPLIT_( \
+ BOOST_LOCAL_FUNCTION_DETAIL_PP_VOID_LIST(void_or_seq)))
+#else
+# define GCC_LAMBDA(...) \
+ BOOST_PP_EXPAND(GCC_LAMBDA_ GCC_LAMBDA_SPLIT_( \
+ BOOST_LOCAL_FUNCTION_DETAIL_PP_VOID_LIST(__VA_ARGS__)))
+#endif
+
+#ifdef BOOST_NO_LAMBDAS
+# define GCC_LAMBDA_END \
+ GCC_LAMBDA_END_(BOOST_LOCAL_FUNCTION_DETAIL_PP_LINE_COUNTER)
+#else
+# define GCC_LAMBDA_END /* nothing */
+#endif
 
 #endif // #include guard
-//]
 

Modified: sandbox/closure/libs/local_function/example/gcc_lambda_cpp11.cpp
==============================================================================
--- /sandbox/closure/libs/closure/example/gcc_lambda_cpp11.cpp (original)
+++ sandbox/closure/libs/local_function/example/gcc_lambda_cpp11.cpp 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,10 @@
 
-//[example_add_cpp
+#define BOOST_TEST_MODULE ExampleGccLambdaCpp11
+#include <boost/test/unit_test.hpp>
 #include <algorithm>
-#include <cstdlib>
 
-int main(void) {
+BOOST_AUTO_TEST_CASE( example_gcc_lambda_cpp11 ) {
+ //[example_gcc_lambda_cpp11
     int val = 2;
     int nums[] = {1, 2, 3};
     int* end = nums + 3;
@@ -13,8 +14,9 @@
             return num == val;
         }
     );
+ //]
 
- return (iter != end) ? EXIT_SUCCESS : EXIT_FAILURE;
+ BOOST_CHECK( iter != end );
+ BOOST_CHECK( *iter == val );
 }
-//]
 

Deleted: /sandbox/closure/libs/closure/test/Jamfile.jam
==============================================================================
--- /sandbox/closure/libs/closure/test/Jamfile.jam 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
+++ (empty file)
@@ -1,11 +0,0 @@
-
-import testing ;
-
-test-suite boost_closure_test :
- [ run return_inc.cpp /boost//unit_test_framework ]
- [ run return_this.cpp /boost//unit_test_framework ]
- [ run return_derivative.cpp /boost//unit_test_framework ]
- [ run return_setget.cpp /boost//unit_test_framework ]
- [ run return_factorial.cpp /boost//unit_test_framework ]
-;
-

Copied: sandbox/closure/libs/local_function/test/Jamfile.v2 (from r76567, /sandbox/closure/libs/closure/test/Jamfile.jam)
==============================================================================
--- /sandbox/closure/libs/closure/test/Jamfile.jam (original)
+++ sandbox/closure/libs/local_function/test/Jamfile.v2 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
@@ -1,11 +1,43 @@
 
 import testing ;
 
-test-suite boost_closure_test :
- [ run return_inc.cpp /boost//unit_test_framework ]
- [ run return_this.cpp /boost//unit_test_framework ]
- [ run return_derivative.cpp /boost//unit_test_framework ]
- [ run return_setget.cpp /boost//unit_test_framework ]
- [ run return_factorial.cpp /boost//unit_test_framework ]
+project : requirements
+ <library>/boost//unit_test_framework
 ;
 
+# @todo make all these compile
+# @toto add all return tests to Examples
+# @todo add _seq for all tests and examples
+
+#msvc
+##gcc
+###gcc c++0x
+
+run add.cpp ;
+###run add_classifiers.cpp ;
+run add_default.cpp ;
+run add_except.cpp ;
+run add_inline.cpp ;
+run add_lambda.cpp ;
+run add_nobind.cpp ;
+##run add_template.cpp ;
+run add_this.cpp ;
+run add_typed.cpp ;
+run add_with_default.cpp ;
+
+#run factorial.cpp ;
+#run nesting.cpp ;
+run overload.cpp ;
+run ten.cpp ;
+##run transform.cpp ;
+run typeof.cpp ;
+##run typeof_template.cpp ;
+#run all_inputs.cpp ;
+
+#run return_assign.cpp ;
+run return_derivative.cpp ;
+##run return_factorial.cpp ;
+run return_inc.cpp ;
+run return_setget.cpp ;
+run return_this.cpp ;
+

Modified: sandbox/closure/libs/local_function/test/return_derivative.cpp
==============================================================================
--- /sandbox/closure/libs/closure/test/return_derivative.cpp (original)
+++ sandbox/closure/libs/local_function/test/return_derivative.cpp 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
@@ -1,25 +1,23 @@
 
-//[test_return_derivative_cpp
-#include <boost/closure.hpp>
+#include <boost/local_function.hpp>
 #include <boost/function.hpp>
-#define BOOST_TEST_MODULE ReturnDerivative
+#define BOOST_TEST_MODULE TestReturnDerivative
 #include <boost/test/unit_test.hpp>
 
 boost::function<int (int)> derivative(boost::function<int (int)>& f, int dx) {
- int BOOST_CLOSURE(bind& f, const bind dx, int x) {
+ int BOOST_LOCAL_FUNCTION(bind& f, const bind dx, int x) {
         return (f(x + dx) - f(x)) / dx;
- } BOOST_CLOSURE_END(deriv)
+ } BOOST_LOCAL_FUNCTION_NAME(deriv)
     return deriv;
 }
 
-BOOST_AUTO_TEST_CASE( return_derivative ) {
- int BOOST_CLOSURE(int x) {
+BOOST_AUTO_TEST_CASE( test_return_derivative ) {
+ int BOOST_LOCAL_FUNCTION(int x) {
         return x + 4;
- } BOOST_CLOSURE_END(add2)
+ } BOOST_LOCAL_FUNCTION_NAME(add2)
     boost::function<int (int)> a2 = add2; // Reference valid where closure used.
 
     boost::function<int (int)> d2 = derivative(a2, 2);
     BOOST_CHECK( d2(6) == 1 );
 }
-//]
 

Modified: sandbox/closure/libs/local_function/test/return_factorial.cpp
==============================================================================
--- /sandbox/closure/libs/closure/test/return_factorial.cpp (original)
+++ sandbox/closure/libs/local_function/test/return_factorial.cpp 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
@@ -1,24 +1,23 @@
 
-//[test_return_factorial_cpp
-#include <boost/closure.hpp>
+#include <boost/local_function.hpp>
 #include <boost/function.hpp>
-#define BOOST_TEST_MODULE ReturnFactorial
+#define BOOST_TEST_MODULE TestReturnFactorial
 #include <boost/test/unit_test.hpp>
 #include <vector>
 #include <iostream>
 
 boost::function<int (int)> factorial(std::vector<int>& steps) {
- int BOOST_CLOSURE(bind& steps, int n) {
+ int BOOST_LOCAL_FUNCTION(bind& steps, int n) {
         int result;
         if(n < 2) result = 1;
         else result = n * (*this)(n - 1); // Recursive call.
         steps.push_back(result);
         return result;
- } BOOST_CLOSURE_END(fact)
+ } BOOST_LOCAL_FUNCTION_NAME(fact)
     return fact;
 }
 
-BOOST_AUTO_TEST_CASE( return_factorial ) {
+BOOST_AUTO_TEST_CASE( test_return_factorial ) {
     std::vector<int> steps;
     boost::function<int (int)> fact = factorial(steps);
 
@@ -28,5 +27,4 @@
     i = steps.at(2); BOOST_CHECK( i == 6 );
     i = steps.at(3); BOOST_CHECK( i == 24 );
 }
-//]
 

Modified: sandbox/closure/libs/local_function/test/return_inc.cpp
==============================================================================
--- /sandbox/closure/libs/closure/test/return_inc.cpp (original)
+++ sandbox/closure/libs/local_function/test/return_inc.cpp 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
@@ -1,18 +1,17 @@
 
-//[test_return_inc_cpp
-#include <boost/closure.hpp>
+#include <boost/local_function.hpp>
 #include <boost/function.hpp>
-#define BOOST_TEST_MODULE ReturnInc
+#define BOOST_TEST_MODULE TestReturnInc
 #include <boost/test/unit_test.hpp>
 
 boost::function<int (void)> inc(int& value) {
- int BOOST_CLOSURE(bind& value) {
+ int BOOST_LOCAL_FUNCTION(bind& value) {
         return ++value;
- } BOOST_CLOSURE_END(i)
+ } BOOST_LOCAL_FUNCTION_NAME(i)
     return i;
 }
 
-BOOST_AUTO_TEST_CASE( return_inc ) {
+BOOST_AUTO_TEST_CASE( test_return_inc ) {
     int value1 = 0; // Reference valid in scope where closure is used.
     boost::function<int (void)> inc1 = inc(value1);
     int value2 = 0;
@@ -23,5 +22,4 @@
     BOOST_CHECK( inc2() == 1 );
     BOOST_CHECK( inc1() == 3 );
 }
-//]
 

Modified: sandbox/closure/libs/local_function/test/return_setget.cpp
==============================================================================
--- /sandbox/closure/libs/closure/test/return_setget.cpp (original)
+++ sandbox/closure/libs/local_function/test/return_setget.cpp 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
@@ -1,13 +1,12 @@
 
-//[test_return_setget_cpp
-#include <boost/closure.hpp>
+#include <boost/local_function.hpp>
 #include <boost/function.hpp>
-#define BOOST_TEST_MODULE ReturnSetGet
+#define BOOST_TEST_MODULE TestReturnSetGet
 #include <boost/test/unit_test.hpp>
 #include <string>
 
-boost::function<void (std::string const&)> set;
-boost::function<std::string const& (void)> get;
+boost::function<void (const std::string&)> set;
+boost::function<const std::string& (void)> get;
 
 void action(void) {
     // State `message` hidden behind access functions from here.
@@ -16,20 +15,19 @@
     BOOST_CHECK( get() == "xyz" );
 }
 
-BOOST_AUTO_TEST_CASE( return_setget ) {
+BOOST_AUTO_TEST_CASE( test_return_setget ) {
     std::string message = "abc"; // Reference valid where closure used.
     
- void BOOST_CLOSURE(bind& message, std::string const& text) {
+ void BOOST_LOCAL_FUNCTION(bind& message, const std::string& text) {
         message = text;
- } BOOST_CLOSURE_END(s)
+ } BOOST_LOCAL_FUNCTION_NAME(s)
     set = s;
 
- std::string const& BOOST_CLOSURE(const bind& message) {
+ const std::string& BOOST_LOCAL_FUNCTION(const bind& message) {
         return message;
- } BOOST_CLOSURE_END(g)
+ } BOOST_LOCAL_FUNCTION_NAME(g)
     get = g;
     
     action();
 }
-//]
 

Modified: sandbox/closure/libs/local_function/test/return_this.cpp
==============================================================================
--- /sandbox/closure/libs/closure/test/return_this.cpp (original)
+++ sandbox/closure/libs/local_function/test/return_this.cpp 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
@@ -1,17 +1,16 @@
 
-//[test_return_this_cpp
-#include <boost/closure.hpp>
+#include <boost/local_function.hpp>
 #include <boost/function.hpp>
-#define BOOST_TEST_MODULE ReturnThis
+#define BOOST_TEST_MODULE TestReturnThis
 #include <boost/test/unit_test.hpp>
 
 struct number {
     number(int value) : value_(value) {}
 
     boost::function<int (void)> inc(void) {
- int BOOST_CLOSURE(bind this_) {
+ int BOOST_LOCAL_FUNCTION(bind this_) {
             return ++this_->value_;
- } BOOST_CLOSURE_END(i)
+ } BOOST_LOCAL_FUNCTION_NAME(i)
         return i;
     }
 
@@ -19,7 +18,7 @@
     int value_;
 };
 
-BOOST_AUTO_TEST_CASE( return_this ) {
+BOOST_AUTO_TEST_CASE( test_return_this ) {
     number n1 = 0; // Object valid in scope where closure is used.
     boost::function<int (void)> inc1 = n1.inc();
     number n2 = 0;
@@ -30,5 +29,4 @@
     BOOST_CHECK( inc2() == 1 );
     BOOST_CHECK( inc1() == 3 );
 }
-//]
 

Modified: sandbox/closure/libs/scope_exit/doc/Jamfile.v2
==============================================================================
--- sandbox/closure/libs/scope_exit/doc/Jamfile.v2 (original)
+++ sandbox/closure/libs/scope_exit/doc/Jamfile.v2 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
@@ -14,19 +14,16 @@
         <doxygen:param>WARN_IF_UNDOCUMENTED=NO
         <doxygen:param>HIDE_UNDOC_MEMBERS=YES
         <doxygen:param>HIDE_UNDOC_CLASSES=YES
- <doxygen:param>ALIASES=" Params=\"<b>Parameters:</b> <table border="0">\" Param{2}=\"<tr><td><b><tt>\\1</tt></b></td><td>\\2</td></tr>\" EndParams=\"</table>\" Returns=\"<b>Returns:</b>\" Note=\"<b>Note:</b>\" Warning=\"<b>Warning:</b>\" See=\"<b>See:</b>\" RefSect{1}=\"\\xmlonly<link linkend='scope_exit.\\1'>\\1</link>\\endxmlonly\" RefSectId{2}=\"\\xmlonly<link linkend='scope_exit.\\1'>\\2</link>\\endxmlonly\" RefClass{1}=\"\\xmlonly<computeroutput><classname alt='\\1'>\\1</classname></computeroutput>\\endxmlonly\" RefMacro{1}=\"\\xmlonly<computeroutput><macroname alt='\\1'>\\1</macroname></computeroutput>\\endxmlonly\" "
+ <doxygen:param>ALIASES=" Params=\"<b>Parameters:</b> <table border="0">\" Param{2}=\"<tr><td><b><tt>\\1</tt></b></td><td>\\2</td></tr>\" EndParams=\"</table>\" Returns=\"<b>Returns:</b>\" Note=\"<b>Note:</b>\" Warning=\"<b>Warning:</b>\" See=\"<b>See:</b>\" RefSect{1}=\"\\xmlonly<link linkend='scope_exit.\\1'>\\1</link>\\endxmlonly\" RefSectId{2}=\"\\xmlonly<link linkend='scope_exit.\\1'>\\2</link>\\endxmlonly\" RefClass{1}=\"\\xmlonly<computeroutput><classname alt='\\1'>\\1</classname></computeroutput>\\endxmlonly\" RefFunc{1}=\"\\xmlonly<computeroutput><functionname alt='\\1'>\\1</functionname></computeroutput>\\endxmlonly\" RefMacro{1}=\"\\xmlonly<computeroutput><macroname alt='\\1'>\\1</macroname></computeroutput>\\endxmlonly\" "
 
         # Extract Doxygen that comments non-variant macros.
- <doxygen:param>PREDEFINED="BOOST_LOCAL_CONFIG_COMPLIANT DOXY"
+ <doxygen:param>PREDEFINED="DOXY"
         <reftitle>"Reference"
     ;
 
-xml scope_exit : scope_exit.qbk :
- <dependency>reference
-;
+xml doc : scope_exit.qbk : <dependency>reference ;
 
-boostbook standalone : scope_exit :
- # Path for links to Boost:
+boostbook standalone : doc :
     <xsl:param>boost.root=../../../..
     <xsl:param>boost.defaults=Boost
     <format>pdf:<xsl:param>boost.url.prefix=http://www.boost.org/doc/libs/release/libs/scope_exit/doc/html

Modified: sandbox/closure/libs/scope_exit/doc/html/BOOST_SCOPE_EXIT.html
==============================================================================
--- sandbox/closure/libs/scope_exit/doc/html/BOOST_SCOPE_EXIT.html (original)
+++ sandbox/closure/libs/scope_exit/doc/html/BOOST_SCOPE_EXIT.html 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
@@ -33,7 +33,7 @@
 
 </span>BOOST_SCOPE_EXIT(capture_list)</pre></div>
 <div class="refsect1">
-<a name="id799134"></a><h2>Description</h2>
+<a name="id823602"></a><h2>Description</h2>
 <p>The scope exit declaration schedules the execution of the scope exit body at the exit of the enclosing scope:</p>
 <pre class="programlisting"> <span class="special">{</span> <span class="comment">// Some local scope.</span>
         <span class="special">...</span>
@@ -84,7 +84,7 @@
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
 <td align="right"><div class="copyright-footer">Copyright &#169; 2006-2012 Alexander Nasonov, Lorenzo Caminiti<p>
- Distributed under the Boost Software License, Version 1.0 (see accompanying
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>
 </div></td>

Modified: sandbox/closure/libs/scope_exit/doc/html/BOOST_SCOPE_EXIT_ALL.html
==============================================================================
--- sandbox/closure/libs/scope_exit/doc/html/BOOST_SCOPE_EXIT_ALL.html (original)
+++ sandbox/closure/libs/scope_exit/doc/html/BOOST_SCOPE_EXIT_ALL.html 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
@@ -33,7 +33,7 @@
 
 </span>BOOST_SCOPE_EXIT_ALL(capture_list)</pre></div>
 <div class="refsect1">
-<a name="id800185"></a><h2>Description</h2>
+<a name="id824653"></a><h2>Description</h2>
 <p><span class="bold"><strong>Warning:</strong></span> This macro is only available on C++11 compilers. It is not defined on non-C++11 compilers so its use on non-C++11 compilers will generate a compiler error.</p>
 <pre class="programlisting"> <span class="special">{</span> <span class="comment">// Some local scope.</span>
         <span class="special">...</span>
@@ -78,7 +78,7 @@
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
 <td align="right"><div class="copyright-footer">Copyright &#169; 2006-2012 Alexander Nasonov, Lorenzo Caminiti<p>
- Distributed under the Boost Software License, Version 1.0 (see accompanying
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>
 </div></td>

Modified: sandbox/closure/libs/scope_exit/doc/html/BOOST_SCOPE_EXIT_CONFIG_NO_CPP11.html
==============================================================================
--- sandbox/closure/libs/scope_exit/doc/html/BOOST_SCOPE_EXIT_CONFIG_NO_CPP11.html (original)
+++ sandbox/closure/libs/scope_exit/doc/html/BOOST_SCOPE_EXIT_CONFIG_NO_CPP11.html 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
@@ -33,7 +33,7 @@
 
 </span>BOOST_SCOPE_EXIT_CONFIG_NO_CPP11</pre></div>
 <div class="refsect1">
-<a name="id802017"></a><h2>Description</h2>
+<a name="id825393"></a><h2>Description</h2>
 <p>If programmers define this configuration macro, C++11 features will not be used even on C++11 compilers (only C++03 features will be used). By default this macro is not defined.</p>
 <p><span class="bold"><strong>Note:</strong></span> This macro does not disable comma-separated capture lists on compilers that support variadic macros (programmers can simply use Boost.Preprocessor sequences if they do not wish to use comma-separated capture lists).</p>
 <p><span class="bold"><strong>See:</strong></span> <code class="computeroutput"><a class="link" href="BOOST_SCOPE_EXIT.html" title="Macro BOOST_SCOPE_EXIT">BOOST_SCOPE_EXIT</a></code>, <code class="computeroutput"><a class="link" href="BOOST_SCOPE_EXIT_ALL.html" title="Macro BOOST_SCOPE_EXIT_ALL">BOOST_SCOPE_EXIT_ALL</a></code>, <code class="computeroutput"><a class="link" href="BOOST_SCOPE_EXIT_END.html" title="Macro BOOST_SCOPE_EXIT_END">BOOST_SCOPE_EXIT_END</a></code>. </p>
@@ -42,7 +42,7 @@
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
 <td align="right"><div class="copyright-footer">Copyright &#169; 2006-2012 Alexander Nasonov, Lorenzo Caminiti<p>
- Distributed under the Boost Software License, Version 1.0 (see accompanying
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>
 </div></td>

Modified: sandbox/closure/libs/scope_exit/doc/html/BOOST_SCOPE_EXIT_END.html
==============================================================================
--- sandbox/closure/libs/scope_exit/doc/html/BOOST_SCOPE_EXIT_END.html (original)
+++ sandbox/closure/libs/scope_exit/doc/html/BOOST_SCOPE_EXIT_END.html 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
@@ -33,7 +33,7 @@
 
 </span>BOOST_SCOPE_EXIT_END</pre></div>
 <div class="refsect1">
-<a name="id801791"></a><h2>Description</h2>
+<a name="id825167"></a><h2>Description</h2>
 <p>This macro must follow the closing curly bracket <code class="computeroutput">}</code> that ends the scope exit body:</p>
 <pre class="programlisting"> <span class="special">{</span> <span class="comment">// Some local scope.</span>
         <span class="special">...</span>
@@ -59,7 +59,7 @@
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
 <td align="right"><div class="copyright-footer">Copyright &#169; 2006-2012 Alexander Nasonov, Lorenzo Caminiti<p>
- Distributed under the Boost Software License, Version 1.0 (see accompanying
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>
 </div></td>

Modified: sandbox/closure/libs/scope_exit/doc/html/BOOST_SCOPE_EXIT_TPL.html
==============================================================================
--- sandbox/closure/libs/scope_exit/doc/html/BOOST_SCOPE_EXIT_TPL.html (original)
+++ sandbox/closure/libs/scope_exit/doc/html/BOOST_SCOPE_EXIT_TPL.html 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
@@ -33,7 +33,7 @@
 
 </span>BOOST_SCOPE_EXIT_TPL(capture_list)</pre></div>
 <div class="refsect1">
-<a name="id799663"></a><h2>Description</h2>
+<a name="id824131"></a><h2>Description</h2>
 <p>Various versions of the GCC compiler do not compile <code class="computeroutput"><a class="link" href="BOOST_SCOPE_EXIT.html" title="Macro BOOST_SCOPE_EXIT">BOOST_SCOPE_EXIT</a></code> inside function templates. As a workaround, <code class="computeroutput"><a class="link" href="BOOST_SCOPE_EXIT_TPL.html" title="Macro BOOST_SCOPE_EXIT_TPL">BOOST_SCOPE_EXIT_TPL</a></code> should be used instead of <code class="computeroutput"><a class="link" href="BOOST_SCOPE_EXIT.html" title="Macro BOOST_SCOPE_EXIT">BOOST_SCOPE_EXIT</a></code> in these cases:</p>
 <pre class="programlisting"> <span class="special">{</span> <span class="comment">// Some local scope.</span>
         <span class="special">...</span>
@@ -67,7 +67,7 @@
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
 <td align="right"><div class="copyright-footer">Copyright &#169; 2006-2012 Alexander Nasonov, Lorenzo Caminiti<p>
- Distributed under the Boost Software License, Version 1.0 (see accompanying
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>
 </div></td>

Modified: sandbox/closure/libs/scope_exit/doc/html/index.html
==============================================================================
--- sandbox/closure/libs/scope_exit/doc/html/index.html (original)
+++ sandbox/closure/libs/scope_exit/doc/html/index.html 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
@@ -26,12 +26,12 @@
 <span class="firstname">Alexander</span> <span class="surname">Nasonov</span>
 </h3></div></div>
 <div><div class="author"><h3 class="author">
-<span class="firstname">Lorenzo</span> <span class="surname">Caminiti</span>
+<span class="firstname">Lorenzo</span> <span class="surname">Caminiti (lorcaminiti-AT-gmail.com)</span>
 </h3></div></div>
 <div><p class="copyright">Copyright &#169; 2006-2012 Alexander Nasonov, Lorenzo Caminiti</p></div>
 <div><div class="legalnotice">
 <a name="scope_exit.legal"></a><p>
- Distributed under the Boost Software License, Version 1.0 (see accompanying
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>
 </div></div>
@@ -134,7 +134,7 @@
 </div>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: January 14, 2012 at 21:32:03 GMT</small></p></td>
+<td align="left"><p><small>Last revised: January 20, 2012 at 15:09:49 GMT</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>

Modified: sandbox/closure/libs/scope_exit/doc/html/reference.html
==============================================================================
--- sandbox/closure/libs/scope_exit/doc/html/reference.html (original)
+++ sandbox/closure/libs/scope_exit/doc/html/reference.html 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
@@ -42,7 +42,7 @@
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
 <td align="right"><div class="copyright-footer">Copyright &#169; 2006-2012 Alexander Nasonov, Lorenzo Caminiti<p>
- Distributed under the Boost Software License, Version 1.0 (see accompanying
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>
 </div></td>

Modified: sandbox/closure/libs/scope_exit/doc/html/scope_exit/Getting_Started.html
==============================================================================
--- sandbox/closure/libs/scope_exit/doc/html/scope_exit/Getting_Started.html (original)
+++ sandbox/closure/libs/scope_exit/doc/html/scope_exit/Getting_Started.html 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
@@ -103,7 +103,7 @@
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
 <td align="right"><div class="copyright-footer">Copyright &#169; 2006-2012 Alexander Nasonov, Lorenzo Caminiti<p>
- Distributed under the Boost Software License, Version 1.0 (see accompanying
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>
 </div></td>

Modified: sandbox/closure/libs/scope_exit/doc/html/scope_exit/No_Variadic_Macros.html
==============================================================================
--- sandbox/closure/libs/scope_exit/doc/html/scope_exit/No_Variadic_Macros.html (original)
+++ sandbox/closure/libs/scope_exit/doc/html/scope_exit/No_Variadic_Macros.html 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
@@ -43,21 +43,21 @@
 <p>
         Most modern compilers support variadic macros (notably, these include GCC,
         MSVC, and all C++11 compilers). However, in the rare case that programmers
- need to use <a class="link" href="../index.html" title="Chapter&#160;1.&#160;Boost.ScopeExit 1.1.0">ScopeExit</a> on a complier that
- does not support variaidc macros, this library also allows to specify the
- capture list using a <a href="../../../../../libs/preprocessor/index.html" target="_top">Boost.Preprocessor
- sequence</a>:
+ need to use this library on a complier without variaidc macros, this library
+ also allows to specify the capture list using a <a href="../../../../../libs/preprocessor/index.html" target="_top">Boost.Preprocessor
+ sequence</a> where tokens are separated by round parenthesis <code class="computeroutput"><span class="special">()</span></code>:
       </p>
-<pre class="programlisting"><span class="special">(</span><span class="identifier">capture1</span><span class="special">)</span> <span class="special">(</span><span class="identifier">capture2</span><span class="special">)</span> <span class="special">...</span>
+<pre class="programlisting"><span class="special">(</span><span class="identifier">capture1</span><span class="special">)</span> <span class="special">(</span><span class="identifier">capture2</span><span class="special">)</span> <span class="special">...</span> <span class="comment">// All compilers.</span>
 </pre>
 <p>
- Instead of a comma-separated list:
+ Instead of a comma-separated list that we have seen so far which requires
+ variadic macros:
       </p>
-<pre class="programlisting"><span class="identifier">capture1</span><span class="special">,</span> <span class="identifier">capture2</span><span class="special">,</span> <span class="special">...</span>
+<pre class="programlisting"><span class="identifier">capture1</span><span class="special">,</span> <span class="identifier">capture2</span><span class="special">,</span> <span class="special">...</span> <span class="comment">// Only compilers with variadic macros.</span>
 </pre>
 <p>
         For example, the following syntax is accepted on all compilers with and without
- variadic macro support (see also "world_seq.cpp"):
+ variadic macros (see also "world_seq.cpp"):
       </p>
 <p>
 </p>
@@ -80,8 +80,8 @@
         Furthermore, older versions of this library used to only support the Boost.Preprocessor sequence
         syntax so the above syntax is also supported for backward compatibility.
         However, in the current version of this library and on compilers with variadic
- macro support, the following syntax is preferred (see also "world.cpp"):
- <sup>[<a name="scope_exit.No_Variadic_Macros.sequence_syntax.f0" href="#ftn.scope_exit.No_Variadic_Macros.sequence_syntax.f0" class="footnote">8</a>]</sup>
+ macros, the syntax we have seen so far is preferred because more readable
+ (see also "world.cpp"):
       </p>
 <p>
 </p>
@@ -102,8 +102,11 @@
 <p>
       </p>
 <p>
- An empty capture list is always specified using <code class="computeroutput"><span class="keyword">void</span></code>
- on compilers with and without variaidc macro support.
+ Note how the same macros accepts both syntaxes on compilers with variadic
+ macros and only the <a href="../../../../../libs/preprocessor/index.html" target="_top">Boost.Preprocessor
+ sequence</a> syntax on compilers without variadic macros. Finally, an
+ empty capture list is always specified using <code class="computeroutput"><span class="keyword">void</span></code>
+ on compilers with and without variaidc macros.
       </p>
 </div>
 <div class="section">
@@ -113,29 +116,54 @@
 <p>
         The following is a list of most of the examples presented in this documentation
         reprogrammed using the <a href="../../../../../libs/preprocessor/index.html" target="_top">Boost.Preprocessor
- sequence</a> syntax instead of comma-separated lists: "world_checkpoint_seq.cpp",
- "world_this_seq.cpp",
- "world_checkpoint_all_seq.cpp",
- "world_tpl_seq.cpp",
- "try_catch_seq.cpp",
- "scope_guard_seq.cpp".
+ sequence</a> syntax instead of the comma-separated list:
       </p>
-</div>
-<div class="footnotes">
-<br><hr width="100" align="left">
-<div class="footnote"><p><sup>[<a id="ftn.scope_exit.No_Variadic_Macros.sequence_syntax.f0" href="#scope_exit.No_Variadic_Macros.sequence_syntax.f0" class="para">8</a>] </sup>
- Note that on compilers with variadic macro support, the same <code class="computeroutput"><a class="link" href="../BOOST_SCOPE_EXIT.html" title="Macro BOOST_SCOPE_EXIT">BOOST_SCOPE_EXIT</a></code> macro accepts both
- a comma-separated list and a <a href="../../../../../libs/preprocessor/index.html" target="_top">Boost.Preprocessor
- sequence</a> for specifying the capture list. That is true also for
- <code class="computeroutput"><a class="link" href="../BOOST_SCOPE_EXIT_TPL.html" title="Macro BOOST_SCOPE_EXIT_TPL">BOOST_SCOPE_EXIT_TPL</a></code>
- and <code class="computeroutput"><a class="link" href="../BOOST_SCOPE_EXIT_ALL.html" title="Macro BOOST_SCOPE_EXIT_ALL">BOOST_SCOPE_EXIT_ALL</a></code>.
- </p></div>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<thead><tr><th>
+ <p>
+ Files
+ </p>
+ </th></tr></thead>
+<tbody>
+<tr><td>
+ <p>
+ "world_checkpoint_seq.cpp"
+ </p>
+ </td></tr>
+<tr><td>
+ <p>
+ "world_this_seq.cpp"
+ </p>
+ </td></tr>
+<tr><td>
+ <p>
+ "world_checkpoint_all_seq.cpp"
+ </p>
+ </td></tr>
+<tr><td>
+ <p>
+ "world_tpl_seq.cpp"
+ </p>
+ </td></tr>
+<tr><td>
+ <p>
+ "try_catch_seq.cpp"
+ </p>
+ </td></tr>
+<tr><td>
+ <p>
+ "scope_guard_seq.cpp"
+ </p>
+ </td></tr>
+</tbody>
+</table></div>
 </div>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
 <td align="right"><div class="copyright-footer">Copyright &#169; 2006-2012 Alexander Nasonov, Lorenzo Caminiti<p>
- Distributed under the Boost Software License, Version 1.0 (see accompanying
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>
 </div></td>

Modified: sandbox/closure/libs/scope_exit/doc/html/scope_exit/Tutorial.html
==============================================================================
--- sandbox/closure/libs/scope_exit/doc/html/scope_exit/Tutorial.html (original)
+++ sandbox/closure/libs/scope_exit/doc/html/scope_exit/Tutorial.html 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
@@ -65,7 +65,7 @@
         In particular, the last added person must be deleted from <code class="computeroutput"><span class="identifier">persons_</span></code>
         if the function throws. All we need is to define a delayed action (release
         of a resource) right after the direct action (resource acquisition). For
- example (see also "world.cpp"):
+ example (see also "world.cpp"):
       </p>
 <p>
 </p>
@@ -151,7 +151,7 @@
         body so we can compare it with the final value of <code class="computeroutput"><span class="identifier">evolution_</span></code>.
         If the latter was not incremented since we saved it, the rollback action
         inside the <a class="link" href="../index.html" title="Chapter&#160;1.&#160;Boost.ScopeExit 1.1.0">ScopeExit</a> body should be executed.
- For example (see also "world_checkpoint.cpp"):
+ For example (see also "world_checkpoint.cpp"):
       </p>
 <p>
 </p>
@@ -200,7 +200,7 @@
 <p>
         Within a member function, it is also possible to capture the object <code class="computeroutput"><span class="keyword">this</span></code>. However, the special symbol <code class="computeroutput"><span class="identifier">this_</span></code> must be used instead of <code class="computeroutput"><span class="keyword">this</span></code> in the <a class="link" href="../index.html" title="Chapter&#160;1.&#160;Boost.ScopeExit 1.1.0">ScopeExit</a>
         declaration and body to capture and access the object. For example (see also
- "world_this.cpp"):
+ "world_this.cpp"):
       </p>
 <p>
 </p>
@@ -211,7 +211,7 @@
 <p>
       </p>
 <p>
- On C++11, it is possible (but not required) to directly use <code class="computeroutput"><span class="keyword">this</span></code> instead of the special symbol <code class="computeroutput"><span class="identifier">this_</span></code>. <sup>[<a name="scope_exit.Tutorial.capturing_the_object__this_.f0" href="#ftn.scope_exit.Tutorial.capturing_the_object__this_.f0" class="footnote">4</a>]</sup> For example (see also "world_this.cpp"):
+ On C++11, it is possible (but not required) to directly use <code class="computeroutput"><span class="keyword">this</span></code> instead of the special symbol <code class="computeroutput"><span class="identifier">this_</span></code>. <sup>[<a name="scope_exit.Tutorial.capturing_the_object__this_.f0" href="#ftn.scope_exit.Tutorial.capturing_the_object__this_.f0" class="footnote">4</a>]</sup> For example (see also "world_this.cpp"):
       </p>
 <p>
 </p>
@@ -241,7 +241,7 @@
         (similarly to the C syntax that allows to declare a function with no parameter
         using <code class="computeroutput"><span class="identifier">result_type</span> <span class="identifier">func</span><span class="special">(</span><span class="keyword">void</span><span class="special">);</span></code>).
         <sup>[<a name="scope_exit.Tutorial.capturing_no_variable.f0" href="#ftn.scope_exit.Tutorial.capturing_no_variable.f0" class="footnote">5</a>]</sup> For example, this can be useful when the <a class="link" href="../index.html" title="Chapter&#160;1.&#160;Boost.ScopeExit 1.1.0">ScopeExit</a>
- body only needs to access global variables (see also "world_void.cpp"):
+ body only needs to access global variables (see also "world_void.cpp"):
       </p>
 <p>
 </p>
@@ -289,7 +289,7 @@
         that no variable name is specified by these leading captures). Additional
         captures of specific variables can follow the leading <code class="computeroutput"><span class="special">&amp;</span></code>
         or <code class="computeroutput"><span class="special">=</span></code> and they will override
- the default reference or value captures. For example (see also "world_checkpoint_all.cpp"):
+ the default reference or value captures. For example (see also "world_checkpoint_all.cpp"):
       </p>
 <p>
 </p>
@@ -419,7 +419,7 @@
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
 <td align="right"><div class="copyright-footer">Copyright &#169; 2006-2012 Alexander Nasonov, Lorenzo Caminiti<p>
- Distributed under the Boost Software License, Version 1.0 (see accompanying
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>
 </div></td>

Modified: sandbox/closure/libs/scope_exit/doc/html/scope_exit/acknowledgements.html
==============================================================================
--- sandbox/closure/libs/scope_exit/doc/html/scope_exit/acknowledgements.html (original)
+++ sandbox/closure/libs/scope_exit/doc/html/scope_exit/acknowledgements.html 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
@@ -62,7 +62,7 @@
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
 <td align="right"><div class="copyright-footer">Copyright &#169; 2006-2012 Alexander Nasonov, Lorenzo Caminiti<p>
- Distributed under the Boost Software License, Version 1.0 (see accompanying
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>
 </div></td>

Modified: sandbox/closure/libs/scope_exit/doc/html/scope_exit/annex__alternatives.html
==============================================================================
--- sandbox/closure/libs/scope_exit/doc/html/scope_exit/annex__alternatives.html (original)
+++ sandbox/closure/libs/scope_exit/doc/html/scope_exit/annex__alternatives.html 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
@@ -46,7 +46,7 @@
         class. An instance of <code class="computeroutput"><span class="identifier">file</span></code>
         does not close the file in its destructor, a programmer is expected to call
         the <code class="computeroutput"><span class="identifier">close</span></code> member function
- explicitly. For example (see also "try_catch.cpp"):
+ explicitly. For example (see also "try_catch.cpp"):
       </p>
 <p>
 </p>
@@ -85,7 +85,7 @@
 </ul></div>
 <p>
         The <a class="link" href="../index.html" title="Chapter&#160;1.&#160;Boost.ScopeExit 1.1.0">ScopeExit</a> approach does not have any
- of these issues. For example (see also "try_catch.cpp"):
+ of these issues. For example (see also "try_catch.cpp"):
       </p>
 <p>
 </p>
@@ -237,7 +237,7 @@
 </pre>
 <p>
         With <a class="link" href="../index.html" title="Chapter&#160;1.&#160;Boost.ScopeExit 1.1.0">ScopeExit</a> we can simply do the following
- (see also "scope_guard.cpp"):
+ (see also "scope_guard.cpp"):
       </p>
 <p>
 </p>
@@ -284,7 +284,7 @@
 </h3></div></div></div>
 <p>
         Using C++11 lambdas, it is relatively easy to implement the <a class="link" href="../index.html" title="Chapter&#160;1.&#160;Boost.ScopeExit 1.1.0">ScopeExit</a>
- construct. For example (see also "world_lambda.cpp"):
+ construct. For example (see also "world_lambda.cpp"):
       </p>
 <p>
 </p>
@@ -321,7 +321,7 @@
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
 <td align="right"><div class="copyright-footer">Copyright &#169; 2006-2012 Alexander Nasonov, Lorenzo Caminiti<p>
- Distributed under the Boost Software License, Version 1.0 (see accompanying
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>
 </div></td>

Modified: sandbox/closure/libs/scope_exit/doc/scope_exit.qbk
==============================================================================
--- sandbox/closure/libs/scope_exit/doc/scope_exit.qbk (original)
+++ sandbox/closure/libs/scope_exit/doc/scope_exit.qbk 2012-01-21 13:20:48 EST (Sat, 21 Jan 2012)
@@ -9,7 +9,10 @@
         (See accompanying file LICENSE_1_0.txt or copy at
         [@http://www.boost.org/LICENSE_1_0.txt])
     ]
- [authors [Nasonov, Alexander] [Caminiti, Lorenzo]]
+ [authors
+ [Nasonov, Alexander]
+ [Caminiti <email>lorcaminiti_at_[hidden]</email>, Lorenzo]
+ ]
     [category utility]
     [id scope_exit]
     [dirname scope_exit]
@@ -384,40 +387,41 @@
 [section Sequence Syntax]
 
 Most modern compilers support variadic macros (notably, these include GCC, MSVC, and all C++11 compilers).
-However, in the rare case that programmers need to use __scope_exit__ on a complier that does not support variaidc macros, this library also allows to specify the capture list using a __pp_seq__:
+However, in the rare case that programmers need to use this library on a complier without variaidc macros, this library also allows to specify the capture list using a __pp_seq__ where tokens are separated by round parenthesis `()`:
 
- (capture1) (capture2) ...
+ (capture1) (capture2) ... // All compilers.
 
-Instead of a comma-separated list:
+Instead of a comma-separated list that we have seen so far which requires variadic macros:
 
- capture1, capture2, ...
+ capture1, capture2, ... // Only compilers with variadic macros.
 
-For example, the following syntax is accepted on all compilers with and without variadic macro support (see also [@../../test/world_seq.cpp `"world_seq.cpp"`]):
+For example, the following syntax is accepted on all compilers with and without variadic macros (see also [@../../test/world_seq.cpp `"world_seq.cpp"`]):
 
 [test_world_seq]
 
 Furthermore, older versions of this library used to only support the __pp_seq__ syntax so the above syntax is also supported for backward compatibility.
-However, in the current version of this library and on compilers with variadic macro support, the following syntax is preferred (see also [@../../test/world.cpp `"world.cpp"`]):
-[footnote
-Note that on compilers with variadic macro support, the same [macroref BOOST_SCOPE_EXIT] macro accepts both a comma-separated list and a __pp_seq__ for specifying the capture list.
-That is true also for [macroref BOOST_SCOPE_EXIT_TPL] and [macroref BOOST_SCOPE_EXIT_ALL].
-]
+However, in the current version of this library and on compilers with variadic macros, the syntax we have seen so far is preferred because more readable (see also [@../../test/world.cpp `"world.cpp"`]):
 
 [test_world]
 
-An empty capture list is always specified using `void` on compilers with and without variaidc macro support.
+Note how the same macros accept both syntaxes on compilers with variadic macros and only the __pp_seq__ syntax on compilers without variadic macros.
+Finally, an empty capture list is always specified using `void` on compilers with and without variaidc macros.
 
 [endsect]
 
 [section Examples]
 
-The following is a list of most of the examples presented in this documentation reprogrammed using the __pp_seq__ syntax instead of comma-separated lists:
-[@../../test/world_checkpoint_seq.cpp "world_checkpoint_seq.cpp"],
-[@../../test/world_this_seq.cpp "world_this_seq.cpp"],
-[@../../test/world_checkpoint_all_seq.cpp "world_checkpoint_all_seq.cpp"],
-[@../../test/world_tpl_seq.cpp "world_tpl_seq.cpp"],
-[@../../example/try_catch_seq.cpp "try_catch_seq.cpp"],
-[@../../example/scope_guard_seq.cpp "scope_guard_seq.cpp"].
+The following is a list of most of the examples presented in this documentation reprogrammed using the __pp_seq__ syntax instead of the comma-separated list:
+
+[table
+ [ [Files] ]
+ [ [[@../../test/world_checkpoint_seq.cpp "world_checkpoint_seq.cpp"]] ]
+ [ [[@../../test/world_this_seq.cpp "world_this_seq.cpp"]] ]
+ [ [[@../../test/world_checkpoint_all_seq.cpp "world_checkpoint_all_seq.cpp"]] ]
+ [ [[@../../test/world_tpl_seq.cpp "world_tpl_seq.cpp"]] ]
+ [ [[@../../example/try_catch_seq.cpp "try_catch_seq.cpp"]] ]
+ [ [[@../../example/scope_guard_seq.cpp "scope_guard_seq.cpp"]] ]
+]
 
 [endsect]
 


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