|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r72171 - in sandbox/conversion/libs/conversion_ext/doc: . html html/boost
From: vicente.botet_at_[hidden]
Date: 2011-05-25 18:30:58
Author: viboes
Date: 2011-05-25 18:30:57 EDT (Wed, 25 May 2011)
New Revision: 72171
URL: http://svn.boost.org/trac/boost/changeset/72171
Log:
Conversion: Moved to conversion namespace+ updated doc
Removed:
sandbox/conversion/libs/conversion_ext/doc/html/boost/
Text files modified:
sandbox/conversion/libs/conversion_ext/doc/Jamfile.v2 | 5
sandbox/conversion/libs/conversion_ext/doc/html/index.html | 400 ++++++++++++++++++++++++++--------------
sandbox/conversion/libs/conversion_ext/doc/html/standalone_HTML.manifest | 68 ++++--
3 files changed, 310 insertions(+), 163 deletions(-)
Modified: sandbox/conversion/libs/conversion_ext/doc/Jamfile.v2
==============================================================================
--- sandbox/conversion/libs/conversion_ext/doc/Jamfile.v2 (original)
+++ sandbox/conversion/libs/conversion_ext/doc/Jamfile.v2 2011-05-25 18:30:57 EDT (Wed, 25 May 2011)
@@ -104,7 +104,7 @@
project : requirements
#doxygen common parameters
- <doxygen:param>"PREDEFINED=\"BOOST_ENUMS_DOXYGEN_INVOKED=1\" \\
+ <doxygen:param>"PREDEFINED=\"BOOST_CONVERSION_DOXYGEN_INVOKED=1\" \\
\"BOOST_STATIC_CONSTEXPR=constexpr\" \\
\"BOOST_DEDUCED_TYPENAME=typename\" \\
\"BOOST_EXPLICIT=explicit\" \\
@@ -167,6 +167,7 @@
:
[ glob ../../../boost/conversion.hpp ]
[ glob ../../../boost/conversion/*.hpp ]
+ [ glob ../../../boost/conversion/fp/convert_to.hpp ]
:
<xsl:param>"boost.doxygen.reftitle=Core"
;
@@ -248,7 +249,7 @@
path-constant boost-root : [ modules.peek : BOOST ] ;
install css-install : $(boost-root)/doc/src/boostbook.css : <location>html ;
-install png-install : [ glob $(boost-root)/doc/src/images/*.png $(boost-root)/boost.png ] : <location>html/images ;
+install png-install : [ glob $(boost-root)/doc/src/images/*.png ] : <location>html/images ;
install svg-install : [ glob $(boost-root)/doc/src/images/*.svg ] : <location>html/images ;
install pdf-install : standalone : <install-type>PDF <location>. <name>enums.pdf ;
Modified: sandbox/conversion/libs/conversion_ext/doc/html/index.html
==============================================================================
--- sandbox/conversion/libs/conversion_ext/doc/html/index.html (original)
+++ sandbox/conversion/libs/conversion_ext/doc/html/index.html 2011-05-25 18:30:57 EDT (Wed, 25 May 2011)
@@ -5,7 +5,7 @@
<link rel="stylesheet" href="./boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
<link rel="home" href="index.html" title="Toward Boost.Conversion 0.6.0">
-<link rel="next" href="boost/conversion/partial_specialization__id35972110/assign_to.html" title="Struct template assign_to">
+<link rel="next" href="boost/conversion/overload_workaround/assign_to.html" title="Struct template assign_to">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -17,7 +17,7 @@
<td align="center">More</td>
</tr></table>
<hr>
-<div class="spirit-nav"><a accesskey="n" href="boost/conversion/partial_specialization__id35972110/assign_to.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a></div>
+<div class="spirit-nav"><a accesskey="n" href="boost/conversion/overload_workaround/assign_to.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a></div>
<div class="article">
<div class="titlepage">
<div>
@@ -718,7 +718,7 @@
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">conversion</span><span class="special">/</span><span class="identifier">std</span><span class="special">/</span><span class="identifier">pair</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">int</span><span class="special">,</span><span class="keyword">int</span><span class="special">></span> <span class="identifier">pint</span><span class="special">(</span><span class="number">0</span><span class="special">,</span><span class="number">1</span><span class="special">);</span>
-<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">double</span><span class="special">,</span><span class="keyword">double</span><span class="special">></span> <span class="identifier">pdouble</span><span class="special">=</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">convert_to</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">double</span><span class="special">,</span><span class="keyword">double</span><span class="special">></span> <span class="special">>(</span><span class="identifier">pint</span><span class="special">);</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">double</span><span class="special">,</span><span class="keyword">double</span><span class="special">></span> <span class="identifier">pdouble</span><span class="special">=</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">conversion</span><span class="special">::</span><span class="identifier">convert_to</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">double</span><span class="special">,</span><span class="keyword">double</span><span class="special">></span> <span class="special">>(</span><span class="identifier">pint</span><span class="special">);</span>
</pre>
<p>
Do not forget to include this files when you use a generic class or algorithm
@@ -864,8 +864,8 @@
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
<span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
- <span class="preprocessor">#ifdef</span> <span class="identifier">BOOST_NO_FUNCTION_TEMPLATE_ORDERING</span>
- <span class="keyword">namespace</span> <span class="identifier">conversion</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">partial_specialization_workaround</span> <span class="special">{</span>
+ <span class="preprocessor">#ifdef</span> <span class="identifier">BOOST_NO_FUNCTION_TEMPLATE_ORDERING</span> <span class="special">&&</span> <span class="special">!</span> <span class="identifier">defined</span><span class="special">(</span><span class="identifier">BOOST_CONVERSION_DOXYGEN_INVOKED</span><span class="special">)</span>
+ <span class="keyword">namespace</span> <span class="identifier">conversion</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">overload_workaround</span> <span class="special">{</span>
<span class="keyword">template</span> <span class="special"><</span> <span class="keyword">class</span> <span class="identifier">Clock</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Duration</span><span class="special">></span>
<span class="keyword">struct</span> <span class="identifier">convert_to</span><span class="special"><</span><span class="identifier">posix_time</span><span class="special">::</span><span class="identifier">ptime</span><span class="special">,</span> <span class="identifier">chrono</span><span class="special">::</span><span class="identifier">time_point</span><span class="special"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span><span class="special">></span> <span class="special">></span> <span class="special">{</span>
<span class="keyword">inline</span> <span class="keyword">static</span> <span class="identifier">posix_time</span><span class="special">::</span><span class="identifier">ptime</span> <span class="identifier">apply</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">chrono</span><span class="special">::</span><span class="identifier">time_point</span><span class="special"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span><span class="special">>&</span> <span class="identifier">from</span><span class="special">)</span>
@@ -889,7 +889,7 @@
<span class="keyword">struct</span> <span class="identifier">assign_to</span><span class="special"><</span><span class="identifier">posix_time</span><span class="special">::</span><span class="identifier">ptime</span><span class="special">,</span> <span class="identifier">chrono</span><span class="special">::</span><span class="identifier">time_point</span><span class="special"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span><span class="special">></span> <span class="special">></span> <span class="special">{</span>
<span class="keyword">inline</span> <span class="keyword">static</span> <span class="identifier">posix_time</span><span class="special">::</span><span class="identifier">ptime</span><span class="special">&</span> <span class="identifier">apply</span><span class="special">(</span><span class="identifier">posix_time</span><span class="special">::</span><span class="identifier">ptime</span><span class="special">&</span> <span class="identifier">to</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">chrono</span><span class="special">::</span><span class="identifier">time_point</span><span class="special"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span><span class="special">>&</span> <span class="identifier">from</span><span class="special">)</span>
<span class="special">{</span>
- <span class="identifier">to</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">convert_to</span><span class="special"><</span><span class="identifier">posix_time</span><span class="special">::</span><span class="identifier">ptime</span><span class="special">>(</span><span class="identifier">from</span><span class="special">);</span>
+ <span class="identifier">to</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">conversion</span><span class="special">::</span><span class="identifier">convert_to</span><span class="special"><</span><span class="identifier">posix_time</span><span class="special">::</span><span class="identifier">ptime</span><span class="special">>(</span><span class="identifier">from</span><span class="special">);</span>
<span class="keyword">return</span> <span class="identifier">to</span><span class="special">;</span>
<span class="special">}</span>
<span class="special">};</span>
@@ -908,7 +908,7 @@
<span class="keyword">struct</span> <span class="identifier">assign_to</span><span class="special"><</span><span class="identifier">chrono</span><span class="special">::</span><span class="identifier">time_point</span><span class="special"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span><span class="special">>,</span> <span class="identifier">posix_time</span><span class="special">::</span><span class="identifier">ptime</span><span class="special">></span> <span class="special">{</span>
<span class="keyword">inline</span> <span class="keyword">static</span> <span class="identifier">chrono</span><span class="special">::</span><span class="identifier">time_point</span><span class="special"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span><span class="special">>&</span> <span class="identifier">apply</span><span class="special">(</span><span class="identifier">chrono</span><span class="special">::</span><span class="identifier">time_point</span><span class="special"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span><span class="special">>&</span> <span class="identifier">to</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">posix_time</span><span class="special">::</span><span class="identifier">ptime</span><span class="special">&</span> <span class="identifier">from</span><span cl
ass="special">)</span>
<span class="special">{</span>
- <span class="identifier">to</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">convert_to</span><span class="special"><</span><span class="identifier">chrono</span><span class="special">::</span><span class="identifier">time_point</span><span class="special"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span><span class="special">></span> <span class="special">>(</span><span class="identifier">from</span><span class="special">);</span>
+ <span class="identifier">to</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">conversion</span><span class="special">::</span><span class="identifier">convert_to</span><span class="special"><</span><span class="identifier">chrono</span><span class="special">::</span><span class="identifier">time_point</span><span class="special"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span><span class="special">></span> <span class="special">>(</span><span class="identifier">from</span><span class="special">);</span>
<span class="keyword">return</span> <span class="identifier">to</span><span class="special">;</span>
<span class="special">}</span>
<span class="special">};</span>
@@ -940,7 +940,7 @@
<span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dummy</span><span class="special">::</span><span class="identifier">type_tag</span><span class="special"><</span><span class="identifier">chrono</span><span class="special">::</span><span class="identifier">time_point</span><span class="special"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</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>
- <span class="identifier">to</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">convert_to</span><span class="special"><</span><span class="identifier">chrono</span><span class="special">::</span><span class="identifier">time_point</span><span class="special"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span><span class="special">></span> <span class="special">>(</span><span class="identifier">from</span><span class="special">);</span>
+ <span class="identifier">to</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">conversion</span><span class="special">::</span><span class="identifier">convert_to</span><span class="special"><</span><span class="identifier">chrono</span><span class="special">::</span><span class="identifier">time_point</span><span class="special"><</span><span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span><span class="special">></span> <span class="special">>(</span><span class="identifier">from</span><span class="special">);</span>
<span class="keyword">return</span> <span class="identifier">to</span><span class="special">;</span>
<span class="special">}</span>
@@ -963,7 +963,7 @@
<span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dummy</span><span class="special">::</span><span class="identifier">type_tag</span><span class="special"><</span><span class="identifier">posix_time</span><span class="special">::</span><span class="identifier">ptime</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span>
<span class="special">)</span>
<span class="special">{</span>
- <span class="identifier">to</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">convert_to</span><span class="special"><</span><span class="identifier">ptime</span><span class="special">>(</span><span class="identifier">from</span><span class="special">);</span>
+ <span class="identifier">to</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">conversion</span><span class="special">::</span><span class="identifier">convert_to</span><span class="special"><</span><span class="identifier">ptime</span><span class="special">>(</span><span class="identifier">from</span><span class="special">);</span>
<span class="keyword">return</span> <span class="identifier">to</span><span class="special">;</span>
<span class="special">}</span>
@@ -994,42 +994,92 @@
<span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
- <span class="preprocessor">#ifdef</span> <span class="identifier">BOOST_NO_FUNCTION_TEMPLATE_ORDERING</span>
- <span class="keyword">namespace</span> <span class="identifier">conversion</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">partial_specialization_workaround</span> <span class="special">{</span>
- <span class="keyword">template</span> <span class="special"><</span> <span class="keyword">class</span> <span class="identifier">Target</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Source</span><span class="special">></span>
- <span class="keyword">struct</span> <span class="identifier">convert_to</span><span class="special"><</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">Target</span><span class="special">>,</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">Source</span><span class="special">></span> <span class="special">></span> <span class="special">{</span>
- <span class="keyword">inline</span> <span class="keyword">static</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">Target</span><span class="special">></span> <span class="identifier">apply</span><span class="special">(</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Source</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">from</span><span class="special">)</span>
- <span class="special">{</span>
- <span class="keyword">return</span> <span class="special">(</span><span class="identifier">from</span><span class="special">?</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Target</span><span class="special">>(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">convert_to</span><span class="special"><</span><span class="identifier">Target</span><span class="special">>(</span><span class="identifier">from</span><span class="special">.</span><span class="identifier">get</span><span class="special">())):</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Target</span><span class="special">>());</span>
- <span class="special">}</span>
- <span class="special">};</span>
- <span class="keyword">template</span> <span class="special"><</span> <span class="keyword">class</span> <span class="identifier">Target</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Source</span><span class="special">></span>
- <span class="keyword">struct</span> <span class="identifier">assign_to</span><span class="special"><</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">Target</span><span class="special">>,</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">Source</span><span class="special">></span> <span class="special">></span> <span class="special">{</span>
- <span class="keyword">inline</span> <span class="keyword">static</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">Target</span><span class="special">>&</span> <span class="identifier">apply</span><span class="special">(</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Target</span><span class="special">>&</span> <span class="identifier">to</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">Source</span><span class="special">>&</span> <span class="identifier">from</span><span class="special">)</span>
- <span class="special">{</span>
- <span class="identifier">to</span> <span class="special">=</span> <span class="identifier">from</span><span class="special">?</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">convert_to</span><span class="special"><</span><span class="identifier">Target</span><span class="special">>(</span><span class="identifier">from</span><span class="special">.</span><span class="identifier">get</span><span class="special">()):</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Target</span><span class="special">>();</span>
- <span class="keyword">return</span> <span class="identifier">to</span><span class="special">;</span>
- <span class="special">}</span>
- <span class="special">};</span>
-
- <span class="special">}}</span>
- <span class="preprocessor">#else</span>
- <span class="keyword">template</span> <span class="special"><</span> <span class="keyword">class</span> <span class="identifier">Target</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Source</span><span class="special">></span>
- <span class="keyword">inline</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">Target</span><span class="special">></span> <span class="identifier">convert_to</span><span class="special">(</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Source</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">from</span>
- <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dummy</span><span class="special">::</span><span class="identifier">type_tag</span><span class="special"><</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Target</span><span class="special">></span> <span class="special">></span> <span class="keyword">const</span><span class="special">&)</span>
- <span class="special">{</span>
- <span class="keyword">return</span> <span class="special">(</span><span class="identifier">from</span><span class="special">?</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Target</span><span class="special">>(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">convert_to</span><span class="special"><</span><span class="identifier">Target</span><span class="special">>(</span><span class="identifier">from</span><span class="special">.</span><span class="identifier">get</span><span class="special">())):</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Target</span><span class="special">>());</span>
+ <span class="preprocessor">#ifdef</span> <span class="identifier">BOOST_NO_FUNCTION_TEMPLATE_ORDERING</span> <span class="special">&&</span> <span class="special">!</span> <span class="identifier">defined</span><span class="special">(</span><span class="identifier">BOOST_CONVERSION_DOXYGEN_INVOKED</span><span class="special">)</span>
+ <span class="keyword">namespace</span> <span class="identifier">conversion</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">overload_workaround</span> <span class="special">{</span>
+ <span class="keyword">template</span> <span class="special"><</span> <span class="keyword">class</span> <span class="identifier">Target</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Source</span><span class="special">></span>
+ <span class="keyword">struct</span> <span class="identifier">convert_to</span><span class="special"><</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">Target</span><span class="special">>,</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">Source</span><span class="special">></span> <span class="special">></span>
+ <span class="special">{</span>
+ <span class="keyword">inline</span> <span class="keyword">static</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">Target</span><span class="special">></span> <span class="identifier">apply</span><span class="special">(</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Source</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">from</span><span class="special">)</span>
+ <span class="special">{</span>
+ <span class="keyword">return</span> <span class="special">(</span><span class="identifier">from</span><span class="special">?</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Target</span><span class="special">>(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">conversion</span><span class="special">::</span><span class="identifier">convert_to</span><span class="special"><</span><span class="identifier">Target</span><span class="special">>(</span><span class="identifier">from</span><span class="special">.</span><span class="identifier">get</span><span class="special">())):</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Target</span><span class="special">>());</span>
+ <span class="special">}</span>
+ <span class="special">};</span>
+
+ <span class="keyword">template</span> <span class="special"><</span> <span class="keyword">class</span> <span class="identifier">Target</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Source</span><span class="special">></span>
+ <span class="keyword">struct</span> <span class="identifier">convert_to</span><span class="special"><</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">Target</span><span class="special">>,</span> <span class="identifier">Source</span> <span class="special">></span>
+ <span class="special">{</span>
+ <span class="keyword">inline</span> <span class="keyword">static</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">Target</span><span class="special">></span> <span class="identifier">apply</span><span class="special">(</span><span class="identifier">Source</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">from</span><span class="special">)</span>
+ <span class="special">{</span>
+ <span class="keyword">try</span>
+ <span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">Target</span><span class="special">>(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">conversion</span><span class="special">::</span><span class="identifier">convert_to</span><span class="special"><</span><span class="identifier">Target</span><span class="special">>(</span><span class="identifier">from</span><span class="special">));</span>
+ <span class="special">}</span>
+ <span class="keyword">catch</span> <span class="special">(...)</span>
+ <span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">Target</span><span class="special">>();</span>
+ <span class="special">}</span>
+ <span class="special">}</span>
+ <span class="special">};</span>
+
+ <span class="keyword">template</span> <span class="special"><</span> <span class="keyword">class</span> <span class="identifier">Target</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Source</span><span class="special">></span>
+ <span class="keyword">struct</span> <span class="identifier">assign_to</span><span class="special"><</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">Target</span><span class="special">>,</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">Source</span><span class="special">></span> <span class="special">></span>
+ <span class="special">{</span>
+ <span class="keyword">inline</span> <span class="keyword">static</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">Target</span><span class="special">>&</span> <span class="identifier">apply</span><span class="special">(</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Target</span><span class="special">>&</span> <span class="identifier">to</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">Source</span><span class="special">>&</span> <span class="identifier">from</span><span class="special">)</span>
+ <span class="special">{</span>
+ <span class="identifier">to</span> <span class="special">=</span> <span class="identifier">from</span><span class="special">?</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Target</span><span class="special">>(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">conversion</span><span class="special">::</span><span class="identifier">convert_to</span><span class="special"><</span><span class="identifier">Target</span><span class="special">>(</span><span class="identifier">from</span><span class="special">.</span><span class="identifier">get</span><span class="special">())):</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Target</span><span class="special">>();</span>
+ <span class="keyword">return</span> <span class="identifier">to</span><span class="special">;</span>
+ <span class="special">}</span>
+ <span class="special">};</span>
+
<span class="special">}</span>
+ <span class="special">}</span>
+<span class="preprocessor">#else</span>
- <span class="keyword">template</span> <span class="special"><</span> <span class="keyword">class</span> <span class="identifier">Target</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Source</span><span class="special">></span>
- <span class="keyword">inline</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">Target</span><span class="special">>&</span> <span class="identifier">assign_to</span><span class="special">(</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Target</span><span class="special">>&</span> <span class="identifier">to</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">Source</span><span class="special">>&</span> <span class="identifier">from</span>
- <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dummy</span><span class="special">::</span><span class="identifier">type_tag</span><span class="special"><</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Target</span><span class="special">></span> <span class="special">></span> <span class="keyword">const</span><span class="special">&</span>
- <span class="special">)</span>
+ <span class="comment">//! @brief @c convert_to overloading for source and target been @c boost::optional.
+</span> <span class="comment">//!
+</span> <span class="comment">//! @Returns If the optional source is initialized @c boost::optional<Target> initialized to the conversion of the optional value.
+</span> <span class="comment">//! Uninitialized @c boost::optional<Target otherwise.
+</span> <span class="keyword">template</span> <span class="special"><</span> <span class="keyword">class</span> <span class="identifier">Target</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Source</span><span class="special">></span>
+ <span class="keyword">inline</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">Target</span><span class="special">></span> <span class="identifier">convert_to</span><span class="special">(</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Source</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">from</span>
+ <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dummy</span><span class="special">::</span><span class="identifier">type_tag</span><span class="special"><</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Target</span><span class="special">></span> <span class="special">></span> <span class="keyword">const</span><span class="special">&)</span>
+ <span class="special">{</span>
+ <span class="keyword">return</span> <span class="special">(</span><span class="identifier">from</span><span class="special">?</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Target</span><span class="special">>(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">conversion</span><span class="special">::</span><span class="identifier">convert_to</span><span class="special"><</span><span class="identifier">Target</span><span class="special">>(</span><span class="identifier">from</span><span class="special">.</span><span class="identifier">get</span><span class="special">())):</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Target</span><span class="special">>());</span>
+ <span class="special">}</span>
+
+ <span class="comment">//! @brief @c convert_to overloading to try to convert the source to the target.
+</span> <span class="comment">//!
+</span> <span class="comment">//! We can see this specialization as a try_convert_to function.
+</span> <span class="comment">//! @Returns If the source is convertible to the target @c boost::optional<Target> initialized to the result of the conversion.
+</span> <span class="comment">//! Uninitialized @c boost::optional<Target otherwise.
+</span> <span class="keyword">template</span> <span class="special"><</span> <span class="keyword">class</span> <span class="identifier">Target</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Source</span><span class="special">></span>
+ <span class="keyword">inline</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">Target</span><span class="special">></span> <span class="identifier">convert_to</span><span class="special">(</span><span class="identifier">Source</span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">from</span>
+ <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dummy</span><span class="special">::</span><span class="identifier">type_tag</span><span class="special"><</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Target</span><span class="special">></span> <span class="special">></span> <span class="keyword">const</span><span class="special">&)</span>
+ <span class="special">{</span>
+ <span class="keyword">try</span>
+ <span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">Target</span><span class="special">>(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">conversion</span><span class="special">::</span><span class="identifier">convert_to</span><span class="special"><</span><span class="identifier">Target</span><span class="special">>(</span><span class="identifier">from</span><span class="special">));</span>
+ <span class="special">}</span>
+ <span class="keyword">catch</span> <span class="special">(...)</span>
<span class="special">{</span>
- <span class="identifier">to</span> <span class="special">=</span> <span class="identifier">from</span><span class="special">?</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">convert_to</span><span class="special"><</span><span class="identifier">Target</span><span class="special">>(</span><span class="identifier">from</span><span class="special">.</span><span class="identifier">get</span><span class="special">()):</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Target</span><span class="special">>();</span>
- <span class="keyword">return</span> <span class="identifier">to</span><span class="special">;</span>
+ <span class="keyword">return</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">Target</span><span class="special">>();</span>
<span class="special">}</span>
- <span class="preprocessor">#endif</span>
+ <span class="special">}</span>
+
+ <span class="comment">//! @brief @c assign_to overloading for source and target been @c boost::optional.
+</span> <span class="comment">//!
+</span> <span class="comment">//! @Effects As if <c>to = boost::conversion::convert_to<optional<Target> >(from)</c>.
+</span> <span class="comment">//! @Returns The @c to parameter reference.
+</span> <span class="keyword">template</span> <span class="special"><</span> <span class="keyword">class</span> <span class="identifier">Target</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Source</span><span class="special">></span>
+ <span class="keyword">inline</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">Target</span><span class="special">>&</span> <span class="identifier">assign_to</span><span class="special">(</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Target</span><span class="special">>&</span> <span class="identifier">to</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">Source</span><span class="special">>&</span> <span class="identifier">from</span>
+ <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dummy</span><span class="special">::</span><span class="identifier">type_tag</span><span class="special"><</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Target</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>
+ <span class="identifier">to</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">conversion</span><span class="special">::</span><span class="identifier">convert_to</span><span class="special"><</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Target</span><span class="special">></span> <span class="special">>(</span><span class="identifier">from</span><span class="special">);</span>
+ <span class="comment">//to = from?optional<Target>(boost::conversion::convert_to<Target>(from.get())):optional<Target>();
+</span> <span class="keyword">return</span> <span class="identifier">to</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="preprocessor">#endif</span>
<span class="special">}</span>
<span class="preprocessor">#endif</span>
@@ -1055,20 +1105,20 @@
<span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">conversion</span> <span class="special">{</span>
<span class="comment">// std namespace can not be overloaded
-</span> <span class="keyword">namespace</span> <span class="identifier">partial_specialization_workaround</span> <span class="special">{</span>
+</span> <span class="keyword">namespace</span> <span class="identifier">overload_workaround</span> <span class="special">{</span>
<span class="keyword">template</span> <span class="special"><</span> <span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U2</span><span class="special">></span>
<span class="keyword">struct</span> <span class="identifier">convert_to</span><span class="special"><</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">>,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">U1</span><span class="special">,</span><span class="identifier">U2</span><span class="special">></span> <span class="special">></span> <span class="special">{</span>
<span class="keyword">inline</span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">></span> <span class="identifier">apply</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">U1</span><span class="special">,</span><span class="identifier">U2</span><span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="identifier">from</span><span class="special">)</span>
<span class="special">{</span>
- <span class="keyword">return</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">>(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">convert_to</span><span class="special"><</span><span class="identifier">T1</span><span class="special">>(</span><span class="identifier">from</span><span class="special">.</span><span class="identifier">first</span><span class="special">),</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">convert_to</span><span class="special"><</span><span class="identifier">T2</span><span class="special">>(</span><span class="identifier">from</span><span class="special">.</span><span class="identifier">second</span><span class="special">));</span>
+ <span class="keyword">return</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">>(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">conversion</span><span class="special">::</span><span class="identifier">convert_to</span><span class="special"><</span><span class="identifier">T1</span><span class="special">>(</span><span class="identifier">from</span><span class="special">.</span><span class="identifier">first</span><span class="special">),</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">conversion</span><span class="special">::</span><span class="identifier">convert_to</span><span class="special"><</span><span class="identifier">T2</span><span class="special">>(</span>
<span class="identifier">from</span><span class="special">.</span><span class="identifier">second</span><span class="special">));</span>
<span class="special">}</span>
<span class="special">};</span>
<span class="keyword">template</span> <span class="special"><</span> <span class="keyword">class</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T2</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U2</span><span class="special">></span>
<span class="keyword">struct</span> <span class="identifier">assign_to</span><span class="special"><</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">>,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">U1</span><span class="special">,</span><span class="identifier">U2</span><span class="special">></span> <span class="special">></span> <span class="special">{</span>
<span class="keyword">inline</span> <span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">>&</span> <span class="identifier">apply</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">>&</span> <span class="identifier">to</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">U1</span><span class="special">,</span><span class="identifier">U2<
/span><span class="special">>&</span> <span class="identifier">from</span><span class="special">)</span>
<span class="special">{</span>
- <span class="identifier">to</span><span class="special">.</span><span class="identifier">first</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">convert_to</span><span class="special"><</span><span class="identifier">T1</span><span class="special">>(</span><span class="identifier">from</span><span class="special">.</span><span class="identifier">first</span><span class="special">);</span>
- <span class="identifier">to</span><span class="special">.</span><span class="identifier">second</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">convert_to</span><span class="special"><</span><span class="identifier">T2</span><span class="special">>(</span><span class="identifier">from</span><span class="special">.</span><span class="identifier">second</span><span class="special">);</span>
+ <span class="identifier">to</span><span class="special">.</span><span class="identifier">first</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">conversion</span><span class="special">::</span><span class="identifier">convert_to</span><span class="special"><</span><span class="identifier">T1</span><span class="special">>(</span><span class="identifier">from</span><span class="special">.</span><span class="identifier">first</span><span class="special">);</span>
+ <span class="identifier">to</span><span class="special">.</span><span class="identifier">second</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">conversion</span><span class="special">::</span><span class="identifier">convert_to</span><span class="special"><</span><span class="identifier">T2</span><span class="special">>(</span><span class="identifier">from</span><span class="special">.</span><span class="identifier">second</span><span class="special">);</span>
<span class="keyword">return</span> <span class="identifier">to</span><span class="special">;</span>
<span class="special">}</span>
<span class="special">};</span>
@@ -1138,9 +1188,13 @@
<dt><span class="section">Header <boost/conversion/assign_to.hpp></span></dt>
<dt><span class="section">Header <boost/conversion/ca_wrapper.hpp></span></dt>
<dt><span class="section">Header <boost/conversion/convert_to.hpp></span></dt>
+<dt><span class="section">Header <boost/conversion/fp/convert_to.hpp></span></dt>
+<dt><span class="section">Header <boost/conversion/convert_to_or_fallback.hpp></span></dt>
<dt><span class="section">Header <boost/conversion/convert_to_via.hpp></span></dt>
<dt><span class="section">Header <boost/conversion/include.hpp></span></dt>
<dt><span class="section">Header <boost/conversion/pack.hpp></span></dt>
+<dt><span class="section">Header <boost/conversion/try_assign_to.hpp></span></dt>
+<dt><span class="section">Header <boost/conversion/try_convert_to.hpp></span></dt>
</dl></dd>
<dt><span class="section">C++ Standard classes specializations</span></dt>
<dd><dl>
@@ -1170,10 +1224,18 @@
<dd><dl></dl></dd>
<dt><span class="section">Header <boost/conversion/convert_to.hpp></span></dt>
<dd><dl></dl></dd>
+<dt><span class="section">Header <boost/conversion/fp/convert_to.hpp></span></dt>
+<dd><dl></dl></dd>
+<dt><span class="section">Header <boost/conversion/convert_to_or_fallback.hpp></span></dt>
+<dd><dl></dl></dd>
<dt><span class="section">Header <boost/conversion/convert_to_via.hpp></span></dt>
<dt><span class="section">Header <boost/conversion/include.hpp></span></dt>
<dt><span class="section">Header <boost/conversion/pack.hpp></span></dt>
<dd><dl></dl></dd>
+<dt><span class="section">Header <boost/conversion/try_assign_to.hpp></span></dt>
+<dd><dl></dl></dd>
+<dt><span class="section">Header <boost/conversion/try_convert_to.hpp></span></dt>
+<dd><dl></dl></dd>
</dl></div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
@@ -1181,22 +1243,19 @@
<p>Defines the free function <code class="computeroutput">assign_to</code>. </p>
<p>The function <code class="computeroutput">assign_to</code> assigns the <code class="computeroutput">from</code> parameter to the <code class="computeroutput">to</code> parameter. The default implementation applies the the assignment operator of the <code class="computeroutput">To</code> class. A user adapting another type could need to specialize the <code class="computeroutput">assign_to</code> free function if the default behavior is not satisfactory.</p>
<p>The user can add the <code class="computeroutput">assign_to</code> overloading on the namespace of the Source or Target classes. But sometimes as it is the case for the standard classes, we can not add new functions on the std namespace, so we need a different technique.</p>
-<p>The technique consists in partially specialize on the function <code class="computeroutput">assign_to</code> on the <code class="computeroutput">boost::conversion</code> namespace. For compilers for which we can not partially specialize a function a trick is used: instead of calling directly to the <code class="computeroutput">assign_to</code> member function, <code class="computeroutput">assign_to</code> calls to the static operation apply on a class with the same name in the namespace <code class="computeroutput">partial_specialization_workaround</code>. Thus the user can specialize partially this class. </p>
+<p>The technique consists in partially specialize on the function <code class="computeroutput">assign_to</code> on the <code class="computeroutput">boost::conversion</code> namespace. For compilers for which we can not partially specialize a function a trick is used: instead of calling directly to the <code class="computeroutput">assign_to</code> member function, <code class="computeroutput">assign_to</code> calls to the static operation apply on a class with the same name in the namespace <code class="computeroutput">overload_workaround</code>. Thus the user can specialize partially this class. </p>
<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
- <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Target<span class="special">,</span> <span class="keyword">typename</span> Source<span class="special">></span>
- <span class="identifier">Target</span> <span class="special">&</span> <a class="link" href="boost/assign_to_id35972207.html" title="Function template assign_to"><span class="identifier">assign_to</span></a><span class="special">(</span><span class="identifier">Target</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Source</span> <span class="special">&</span><span class="special">,</span>
- <a class="link" href="boost/dummy/base_tag.html" title="Struct template base_tag">boost::dummy::base_tag</a><span class="special"><</span> <span class="identifier">Target</span> <span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="special">=</span> <a class="link" href="boost/dummy/base_tag.html" title="Struct template base_tag">boost::dummy::base_tag</a><span class="special"><</span> <span class="identifier">Target</span> <span class="special">></span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">namespace</span> <span class="identifier">conversion</span> <span class="special">{</span>
- <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> To<span class="special">,</span> <span class="keyword">typename</span> From<span class="special">></span>
- <span class="identifier">To</span> <span class="special">&</span> <a name="boost.conversion.assign_to_id35972146"></a><span class="identifier">assign_to</span><span class="special">(</span><span class="identifier">To</span> <span class="special">&</span> to<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">From</span> <span class="special">&</span> from<span class="special">,</span>
- <a class="link" href="boost/dummy/type_tag.html" title="Struct template type_tag">dummy::type_tag</a><span class="special"><</span> <span class="identifier">To</span> <span class="special">></span> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span>
- <span class="keyword">namespace</span> <span class="identifier">partial_specialization_workaround</span> <span class="special">{</span>
- <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> To<span class="special">,</span> <span class="keyword">typename</span> From<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="boost/conversion/partial_specialization__id35972110/assign_to.html" title="Struct template assign_to">assign_to</a><span class="special">;</span>
+ <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Target<span class="special">,</span> <span class="keyword">typename</span> Source<span class="special">></span>
+ <span class="identifier">Target</span> <span class="special">&</span> <a class="link" href="boost/conversion/assign_to_id35974124.html" title="Function template assign_to"><span class="identifier">assign_to</span></a><span class="special">(</span><span class="identifier">Target</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Source</span> <span class="special">&</span><span class="special">,</span>
+ <a class="link" href="boost/dummy/base_tag.html" title="Struct template base_tag">boost::dummy::base_tag</a><span class="special"><</span> <span class="identifier">Target</span> <span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="special">=</span> <a class="link" href="boost/dummy/base_tag.html" title="Struct template base_tag">boost::dummy::base_tag</a><span class="special"><</span> <span class="identifier">Target</span> <span class="special">></span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
+ <span class="keyword">namespace</span> <span class="identifier">overload_workaround</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> To<span class="special">,</span> <span class="keyword">typename</span> From<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="boost/conversion/overload_workaround/assign_to.html" title="Struct template assign_to">assign_to</a><span class="special">;</span>
<span class="special">}</span>
<span class="special">}</span>
- <span class="keyword">namespace</span> <span class="identifier">conversion_impl</span> <span class="special">{</span>
- <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Target<span class="special">,</span> <span class="keyword">typename</span> Source<span class="special">></span>
- <span class="identifier">Target</span> <span class="special">&</span> <a name="boost.conversion_impl.assign_to_impl"></a><span class="identifier">assign_to_impl</span><span class="special">(</span><span class="identifier">Target</span> <span class="special">&</span> to<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Source</span> <span class="special">&</span> from<span class="special">)</span><span class="special">;</span>
+ <span class="keyword">namespace</span> <span class="identifier">conversion_2</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> To<span class="special">,</span> <span class="keyword">typename</span> From<span class="special">></span>
+ <span class="identifier">To</span> <span class="special">&</span> <a class="link" href="boost/conversion_2/assign_to_id35974194.html" title="Function template assign_to"><span class="identifier">assign_to</span></a><span class="special">(</span><span class="identifier">To</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">From</span> <span class="special">&</span><span class="special">,</span> <a class="link" href="boost/dummy/type_tag.html" title="Struct template type_tag">dummy::type_tag</a><span class="special"><</span> <span class="identifier">To</span> <span class="special">></span> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span>
<span class="special">}</span>
<span class="special">}</span></pre>
</div>
@@ -1215,24 +1274,19 @@
<div class="titlepage"><div><div><h4 class="title">
<a name="header.boost.conversion.convert_to_hpp"></a>Header <boost/conversion/convert_to.hpp></h4></div></div></div>
<p>Defines the free function <code class="computeroutput">convert_to</code>. </p>
-<p>The <code class="computeroutput">convert_to</code> function converts the <code class="computeroutput">from</code> parameter to a <code class="computeroutput">To</code> type. The default implementation applies the conversion <code class="computeroutput">To</code> operator of the <code class="computeroutput">From</code> class or the copy constructor of the <code class="computeroutput">To</code> class. Of course if both exist the conversion is ambiguous. A user adapting another type could need to specialize the <code class="computeroutput">convert_to</code> free function if the default behavior is not satisfactory.</p>
+<p>The <code class="computeroutput">convert_to</code> function converts the <code class="computeroutput">from</code> parameter to a <code class="computeroutput">To</code> type. The default implementation applies the conversion <code class="computeroutput">To</code> operator of the <code class="computeroutput">From</code> class or the copy constructor of the <code class="computeroutput">To</code> class. Of course if both exist the conversion is ambiguous. A user adapting another type could need to overload the <code class="computeroutput">convert_to</code> free function if the default behavior is not satisfactory.</p>
<p>The user can add the <code class="computeroutput">convert_to</code> overloading on any namespace found by ADL from the <code class="computeroutput">Source</code> or the <code class="computeroutput">Target</code>. A trick is used to overload on the return type by adding a dummy parameter having the Target.</p>
-<p>But sometimes, as it is the case for the standard classes, we can not add new functions on the std namespace, so we need a different technique.</p>
-<p>The technique consists in partially specialize on the function <code class="computeroutput">convert_to</code> on the <code class="computeroutput">boost::conversion</code> namespace. For compilers for which we can not partially specialize a function a trick is used: instead of calling directly to the <code class="computeroutput">convert_to</code> member function, <code class="computeroutput">convert_to</code> calls to the static operation apply on a class with the same name in the namespace <code class="computeroutput">partial_specialization_workaround</code>. Thus the user can specialize partially this class. </p>
+<p>But sometimes, as it is the case for the standard classes, we can not add new functions on the <code class="computeroutput">std</code> namespace, so we need a different technique.</p>
+<p>Instead of calling directly to the conversion operator, <code class="computeroutput">convert_to</code> calls to the static operation apply on a class with the same name in the namespace <code class="computeroutput">boost::conversion::overload_workaround</code>. Thus the user can specialize partially this class. </p>
<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
- <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Target<span class="special">,</span> <span class="keyword">typename</span> Source<span class="special">></span>
- <span class="identifier">Target</span> <a class="link" href="boost/convert_to_id35972717.html" title="Function template convert_to"><span class="identifier">convert_to</span></a><span class="special">(</span><span class="identifier">Source</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">,</span>
- <a class="link" href="boost/dummy/base_tag.html" title="Struct template base_tag">boost::dummy::base_tag</a><span class="special"><</span> <span class="identifier">Target</span> <span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="special">=</span> <a class="link" href="boost/dummy/base_tag.html" title="Struct template base_tag">boost::dummy::base_tag</a><span class="special"><</span> <span class="identifier">Target</span> <span class="special">></span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">namespace</span> <span class="identifier">conversion</span> <span class="special">{</span>
- <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> To<span class="special">,</span> <span class="keyword">typename</span> From<span class="special">></span>
- <span class="identifier">To</span> <a name="boost.conversion.convert_to_id35972637"></a><span class="identifier">convert_to</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">From</span> <span class="special">&</span> val<span class="special">,</span> <a class="link" href="boost/dummy/type_tag.html" title="Struct template type_tag">dummy::type_tag</a><span class="special"><</span> <span class="identifier">To</span> <span class="special">></span> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span>
- <span class="keyword">namespace</span> <span class="identifier">partial_specialization_workaround</span> <span class="special">{</span>
- <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> To<span class="special">,</span> <span class="keyword">typename</span> From<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="boost/conversion/partial_specialization__id35972604/convert_to.html" title="Struct template convert_to">convert_to</a><span class="special">;</span>
- <span class="special">}</span>
- <span class="special">}</span>
- <span class="keyword">namespace</span> <span class="identifier">conversion_impl</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> Enabled <span class="special">=</span> <span class="keyword">void</span><span class="special">></span> <span class="keyword">struct</span> <a class="link" href="boost/conversion/enable_functor.html" title="Struct template enable_functor">enable_functor</a><span class="special">;</span>
<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Target<span class="special">,</span> <span class="keyword">typename</span> Source<span class="special">></span>
- <span class="identifier">Target</span> <a name="boost.conversion_impl.convert_to_impl"></a><span class="identifier">convert_to_impl</span><span class="special">(</span><span class="identifier">Source</span> <span class="keyword">const</span> <span class="special">&</span> from<span class="special">)</span><span class="special">;</span>
+ <span class="identifier">Target</span> <a class="link" href="boost/conversion/convert_to_id35974710.html" title="Function template convert_to"><span class="identifier">convert_to</span></a><span class="special">(</span><span class="identifier">Source</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">,</span>
+ <a class="link" href="boost/dummy/base_tag.html" title="Struct template base_tag">boost::dummy::base_tag</a><span class="special"><</span> <span class="identifier">Target</span> <span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="special">=</span> <a class="link" href="boost/dummy/base_tag.html" title="Struct template base_tag">boost::dummy::base_tag</a><span class="special"><</span> <span class="identifier">Target</span> <span class="special">></span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
+ <span class="keyword">namespace</span> <span class="identifier">overload_workaround</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> To<span class="special">,</span> <span class="keyword">typename</span> From<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="boost/conversion/overload_workaround/convert_to.html" title="Struct template convert_to">convert_to</a><span class="special">;</span>
+ <span class="special">}</span>
<span class="special">}</span>
<span class="keyword">namespace</span> <span class="identifier">dummy</span> <span class="special">{</span>
<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="boost/dummy/base_tag.html" title="Struct template base_tag">base_tag</a><span class="special">;</span>
@@ -1242,6 +1296,41 @@
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.conversion.fp.convert_to_hpp"></a>Header <boost/conversion/fp/convert_to.hpp></h4></div></div></div>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">conversion</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">></span>
+ <span class="keyword">struct</span> <a class="link" href="boost/conversion/enable_functor_T__typen_id35974986.html" title="Struct template enable_functor<T, typename enable_if< phoenix::is_actor< T > >::type>">enable_functor</a><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">enable_if</span><span class="special"><</span> <span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">is_actor</span><span class="special"><</span> <span class="identifier">T</span> <span class="special">></span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span><span class="special">></span><span class="special">;</span>
+ <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> U<span class="special">></span> <span class="emphasis"><em><span class="identifier">unspecified</span></em></span> <a class="link" href="boost/conversion/convert_to_id35975024.html" title="Function template convert_to"><span class="identifier">convert_to</span></a><span class="special">(</span><span class="identifier">U</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.conversion.convert_to_or_fallback_hpp"></a>Header <boost/conversion/convert_to_or_fallback.hpp></h4></div></div></div>
+<p>Defines the free function <code class="computeroutput">convert_to_or_fallback</code>. </p>
+<p>The <code class="computeroutput">convert_to_or_fallback</code> function converts the <code class="computeroutput">from</code> parameter to a <code class="computeroutput">To</code> type. If the conversion fails the fallback value is used to construct a To <code class="computeroutput">instance</code>.</p>
+<p>The default implementation applies the conversion <code class="computeroutput">To</code> operator of the <code class="computeroutput">From</code> class or the copy constructor of the <code class="computeroutput">To</code> class. When an exception is thrown the falback is returned. Of course if both exist the conversion is ambiguous. A user adapting another type could need to specialize the <code class="computeroutput">convert_to_or_fallback</code> free function if the default behavior is not satisfactory.</p>
+<p>The user can add the <code class="computeroutput">convert_to_or_fallback</code> overloading on any namespace found by ADL from the <code class="computeroutput">Source</code> or the <code class="computeroutput">Target</code>. A trick is used to overload on the return type by adding a dummy parameter having the Target.</p>
+<p>But sometimes, as it is the case for the standard classes, we can not add new functions on the std namespace, so we need a different technique.</p>
+<p>The technique consists in partially specialize on the function <code class="computeroutput">convert_to_or_fallback</code> on the <code class="computeroutput">boost::conversion</code> namespace. For compilers for which we can not partially specialize a function a trick is used: instead of calling directly to the <code class="computeroutput">convert_to_or_fallback</code> member function, <code class="computeroutput">convert_to_or_fallback</code> calls to the static operation apply on a class with the same name in the namespace <code class="computeroutput">overload_workaround</code>. Thus the user can specialize partially this class. </p>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Target<span class="special">,</span> <span class="keyword">typename</span> Source<span class="special">,</span> <span class="keyword">typename</span> Fallback<span class="special">></span>
+ <span class="identifier">Target</span> <a class="link" href="boost/convert_to_or_fallback_id35975332.html" title="Function template convert_to_or_fallback"><span class="identifier">convert_to_or_fallback</span></a><span class="special">(</span><span class="identifier">Source</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">Fallback</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">,</span>
+ <a class="link" href="boost/dummy/base_tag.html" title="Struct template base_tag">boost::dummy::base_tag</a><span class="special"><</span> <span class="identifier">Target</span> <span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="special">=</span> <a class="link" href="boost/dummy/base_tag.html" title="Struct template base_tag">boost::dummy::base_tag</a><span class="special"><</span> <span class="identifier">Target</span> <span class="special">></span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
+ <span class="keyword">namespace</span> <span class="identifier">conversion</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> To<span class="special">,</span> <span class="keyword">typename</span> From<span class="special">,</span> <span class="keyword">typename</span> Fallback<span class="special">></span>
+ <span class="identifier">To</span> <a class="link" href="boost/conversion/convert_to_or_fallback_id35975263.html" title="Function template convert_to_or_fallback"><span class="identifier">convert_to_or_fallback</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">From</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">Fallback</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">,</span>
+ <a class="link" href="boost/dummy/type_tag.html" title="Struct template type_tag">dummy::type_tag</a><span class="special"><</span> <span class="identifier">To</span> <span class="special">></span> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span>
+ <span class="keyword">namespace</span> <span class="identifier">overload_workaround</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> To<span class="special">,</span> <span class="keyword">typename</span> From<span class="special">,</span> <span class="keyword">typename</span> Fallback<span class="special">></span>
+ <span class="keyword">struct</span> <a class="link" href="boost/conversion/overload_workaround/convert_to_or_fallback.html" title="Struct template convert_to_or_fallback">convert_to_or_fallback</a><span class="special">;</span>
+ <span class="special">}</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
<a name="header.boost.conversion.convert_to_via_hpp"></a>Header <boost/conversion/convert_to_via.hpp></h4></div></div></div>
<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
<span class="keyword">namespace</span> <span class="identifier">conversion</span> <span class="special">{</span>
@@ -1264,22 +1353,22 @@
<span class="keyword">namespace</span> <span class="identifier">conversion</span> <span class="special">{</span>
<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T1<span class="special">,</span> <span class="keyword">typename</span> T2<span class="special">></span>
<a class="link" href="boost/conversion/result_of/pack2.html" title="Struct template pack2">boost::conversion::result_of::pack2</a><span class="special"><</span> <span class="identifier">T1</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">T2</span> <span class="keyword">const</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span>
- <a class="link" href="boost/conversion/pack_id35972919.html" title="Function template pack"><span class="identifier">pack</span></a><span class="special">(</span><span class="identifier">T1</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">T2</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span>
+ <a class="link" href="boost/conversion/pack_id35975535.html" title="Function template pack"><span class="identifier">pack</span></a><span class="special">(</span><span class="identifier">T1</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">T2</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T1<span class="special">,</span> <span class="keyword">typename</span> T2<span class="special">></span>
<a class="link" href="boost/conversion/result_of/pack2.html" title="Struct template pack2">boost::conversion::result_of::pack2</a><span class="special"><</span> <span class="identifier">T1</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">T2</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span>
- <a class="link" href="boost/conversion/pack_id35972952.html" title="Function template pack"><span class="identifier">pack</span></a><span class="special">(</span><span class="identifier">T1</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">T2</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span>
+ <a class="link" href="boost/conversion/pack_id35975568.html" title="Function template pack"><span class="identifier">pack</span></a><span class="special">(</span><span class="identifier">T1</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">T2</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T1<span class="special">,</span> <span class="keyword">typename</span> T2<span class="special">,</span> <span class="keyword">typename</span> T3<span class="special">></span>
<a class="link" href="boost/conversion/result_of/pack3.html" title="Struct template pack3">boost::conversion::result_of::pack3</a><span class="special"><</span> <span class="identifier">T1</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">T2</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">T3</span> <span class="keyword">const</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span>
- <a class="link" href="boost/conversion/pack_id35972984.html" title="Function template pack"><span class="identifier">pack</span></a><span class="special">(</span><span class="identifier">T1</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">T2</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">T3</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span>
+ <a class="link" href="boost/conversion/pack_id35975600.html" title="Function template pack"><span class="identifier">pack</span></a><span class="special">(</span><span class="identifier">T1</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">T2</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">T3</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T1<span class="special">,</span> <span class="keyword">typename</span> T2<span class="special">,</span> <span class="keyword">typename</span> T3<span class="special">></span>
<a class="link" href="boost/conversion/result_of/pack3.html" title="Struct template pack3">boost::conversion::result_of::pack3</a><span class="special"><</span> <span class="identifier">T1</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">T2</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">T3</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span>
- <a class="link" href="boost/conversion/pack_id35973027.html" title="Function template pack"><span class="identifier">pack</span></a><span class="special">(</span><span class="identifier">T1</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">T2</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">T3</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span>
+ <a class="link" href="boost/conversion/pack_id35975643.html" title="Function template pack"><span class="identifier">pack</span></a><span class="special">(</span><span class="identifier">T1</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">T2</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">T3</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T1<span class="special">,</span> <span class="keyword">typename</span> T2<span class="special">,</span> <span class="keyword">typename</span> T3<span class="special">></span>
<a class="link" href="boost/conversion/result_of/pack3.html" title="Struct template pack3">boost::conversion::result_of::pack3</a><span class="special"><</span> <span class="identifier">T1</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">T2</span><span class="special">,</span> <span class="identifier">T3</span> <span class="keyword">const</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span>
- <a class="link" href="boost/conversion/pack_id35973070.html" title="Function template pack"><span class="identifier">pack</span></a><span class="special">(</span><span class="identifier">T1</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">T2</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">T3</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span>
+ <a class="link" href="boost/conversion/pack_id35975686.html" title="Function template pack"><span class="identifier">pack</span></a><span class="special">(</span><span class="identifier">T1</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">T2</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">T3</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T1<span class="special">,</span> <span class="keyword">typename</span> T2<span class="special">,</span> <span class="keyword">typename</span> T3<span class="special">></span>
<a class="link" href="boost/conversion/result_of/pack3.html" title="Struct template pack3">boost::conversion::result_of::pack3</a><span class="special"><</span> <span class="identifier">T1</span> <span class="keyword">const</span><span class="special">,</span> <span class="identifier">T2</span><span class="special">,</span> <span class="identifier">T3</span> <span class="special">></span><span class="special">::</span><span class="identifier">type</span>
- <a class="link" href="boost/conversion/pack_id35973112.html" title="Function template pack"><span class="identifier">pack</span></a><span class="special">(</span><span class="identifier">T1</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">T2</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">T3</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span>
+ <a class="link" href="boost/conversion/pack_id35975728.html" title="Function template pack"><span class="identifier">pack</span></a><span class="special">(</span><span class="identifier">T1</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">T2</span> <span class="special">&</span><span class="special">,</span> <span class="identifier">T3</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T1<span class="special">,</span> <span class="keyword">typename</span> T2<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="boost/conversion/result_of/pack2.html" title="Struct template pack2">pack2</a><span class="special">;</span>
<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T1<span class="special">,</span> <span class="keyword">typename</span> T2<span class="special">,</span> <span class="keyword">typename</span> T3 <span class="special">=</span> <span class="identifier">fusion</span><span class="special">::</span><span class="identifier">void_</span><span class="special">></span>
@@ -1288,6 +1377,52 @@
<span class="special">}</span>
<span class="special">}</span></pre>
</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.conversion.try_assign_to_hpp"></a>Header <boost/conversion/try_assign_to.hpp></h4></div></div></div>
+<p>Defines the free function <code class="computeroutput">try_assign_to</code>. </p>
+<p>The function <code class="computeroutput">try_assign_to</code> assigns the <code class="computeroutput">from</code> parameter to the <code class="computeroutput">to</code> parameter. Return <code class="computeroutput">true</code> if assignation done and <code class="computeroutput">false</code> otherwise. The default implementation applies the the assignment operator of the <code class="computeroutput">To</code> class. A user adapting another type could need to specialize the <code class="computeroutput">try_assign_to</code> free function if the default behavior is not satisfactory ot if it can improve the performances</p>
+<p>The user can add the <code class="computeroutput">try_assign_to</code> overloading on the namespace of the Source or Target classes. But sometimes as it is the case for the standard classes, we can not add new functions on the std namespace, so we need a different technique.</p>
+<p>The technique consists in partially specialize on the function <code class="computeroutput">try_assign_to</code> on the <code class="computeroutput">boost::conversion</code> namespace. For compilers for which we can not partially specialize a function a trick is used: instead of calling directly to the <code class="computeroutput">try_assign_to</code> member function, <code class="computeroutput">try_assign_to</code> calls to the static operation apply on a class with the same name in the namespace <code class="computeroutput">overload_workaround</code>. Thus the user can specialize partially this class. </p>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Target<span class="special">,</span> <span class="keyword">typename</span> Source<span class="special">></span>
+ <span class="keyword">bool</span> <a class="link" href="boost/try_assign_to_id35975967.html" title="Function template try_assign_to"><span class="identifier">try_assign_to</span></a><span class="special">(</span><span class="identifier">Target</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Source</span> <span class="special">&</span><span class="special">,</span>
+ <a class="link" href="boost/dummy/base_tag.html" title="Struct template base_tag">boost::dummy::base_tag</a><span class="special"><</span> <span class="identifier">Target</span> <span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="special">=</span> <a class="link" href="boost/dummy/base_tag.html" title="Struct template base_tag">boost::dummy::base_tag</a><span class="special"><</span> <span class="identifier">Target</span> <span class="special">></span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
+ <span class="keyword">namespace</span> <span class="identifier">conversion</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> To<span class="special">,</span> <span class="keyword">typename</span> From<span class="special">></span>
+ <span class="keyword">bool</span> <a class="link" href="boost/conversion/try_assign_to_id35975910.html" title="Function template try_assign_to"><span class="identifier">try_assign_to</span></a><span class="special">(</span><span class="identifier">To</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">From</span> <span class="special">&</span><span class="special">,</span> <a class="link" href="boost/dummy/type_tag.html" title="Struct template type_tag">dummy::type_tag</a><span class="special"><</span> <span class="identifier">To</span> <span class="special">></span> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span>
+ <span class="keyword">namespace</span> <span class="identifier">overload_workaround</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> To<span class="special">,</span> <span class="keyword">typename</span> From<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="boost/conversion/overload_workaround/try_assign_to.html" title="Struct template try_assign_to">try_assign_to</a><span class="special">;</span>
+ <span class="special">}</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="header.boost.conversion.try_convert_to_hpp"></a>Header <boost/conversion/try_convert_to.hpp></h4></div></div></div>
+<p>Defines the free function <code class="computeroutput">try_convert_to</code>. </p>
+<p>The <code class="computeroutput">try_convert_to</code> function converts the <code class="computeroutput">from</code> parameter to a <code class="computeroutput">To</code> type and returns an optional<To>, uninitialized if conversion fails.</p>
+<p>The default implementation applies the conversion <code class="computeroutput">To</code> operator of the <code class="computeroutput">From</code> class or the copy constructor of the <code class="computeroutput">To</code> class on a try-catch block and returns optional with the converted value if suceeds and an uninitialized optional otherwise. Of course if both exist the conversion is ambiguous. A user adapting specific types could need to specialize the <code class="computeroutput">try_convert_to</code> free function if the default behavior is not satisfactory or if the specialization can perform better.</p>
+<p>The user can add the <code class="computeroutput">try_convert_to</code> overloading on any namespace found by ADL from the <code class="computeroutput">Source</code> or the <code class="computeroutput">Target</code>. A trick is used to overload on the return type by adding a dummy parameter having the Target.</p>
+<p>But sometimes, as it is the case for the standard classes, we can not add new functions on the std namespace, so we need a different technique.</p>
+<p>The technique consists in partially specialize on the function <code class="computeroutput">try_convert_to</code> on the <code class="computeroutput">boost::conversion</code> namespace. For compilers for which we can not partially specialize a function a trick is used: instead of calling directly to the <code class="computeroutput">try_convert_to</code> member function, <code class="computeroutput">try_convert_to</code> calls to the static operation apply on a class with the same name in the namespace <code class="computeroutput">overload_workaround</code>. Thus the user can specialize partially this class. </p>
+<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">namespace</span> <span class="identifier">conversion</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Target<span class="special">,</span> <span class="keyword">typename</span> Source<span class="special">></span>
+ <span class="identifier">optional</span><span class="special"><</span> <span class="identifier">Target</span> <span class="special">></span>
+ <a class="link" href="boost/conversion/try_convert_to_id35976188.html" title="Function template try_convert_to"><span class="identifier">try_convert_to</span></a><span class="special">(</span><span class="identifier">Source</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">,</span>
+ <a class="link" href="boost/dummy/base_tag.html" title="Struct template base_tag">boost::dummy::base_tag</a><span class="special"><</span> <span class="identifier">Target</span> <span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> <span class="special">=</span> <a class="link" href="boost/dummy/base_tag.html" title="Struct template base_tag">boost::dummy::base_tag</a><span class="special"><</span> <span class="identifier">Target</span> <span class="special">></span><span class="special">(</span><span class="special">)</span><span class="special">)</span><span class="special">;</span>
+ <span class="keyword">namespace</span> <span class="identifier">overload_workaround</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> To<span class="special">,</span> <span class="keyword">typename</span> From<span class="special">></span> <span class="keyword">struct</span> <a class="link" href="boost/conversion/overload_workaround/try_convert_to.html" title="Struct template try_convert_to">try_convert_to</a><span class="special">;</span>
+ <span class="special">}</span>
+ <span class="special">}</span>
+ <span class="keyword">namespace</span> <span class="identifier">conversion_2</span> <span class="special">{</span>
+ <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> To<span class="special">,</span> <span class="keyword">typename</span> From<span class="special">></span>
+ <span class="identifier">optional</span><span class="special"><</span> <span class="identifier">To</span> <span class="special">></span>
+ <a class="link" href="boost/conversion_2/try_convert_to_id35976260.html" title="Function template try_convert_to"><span class="identifier">try_convert_to</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">From</span> <span class="special">&</span><span class="special">,</span> <a class="link" href="boost/dummy/type_tag.html" title="Struct template type_tag">dummy::type_tag</a><span class="special"><</span> <span class="identifier">To</span> <span class="special">></span> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span></pre>
+</div>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
@@ -1328,11 +1463,16 @@
<a name="boost_classes_specializations"></a>Boost classes specializations</h3></div></div></div>
<div class="toc"><dl>
<dt><span class="section">Header <boost/array.hpp></span></dt>
+<dd><dl></dl></dd>
<dt><span class="section">Header <boost/chrono_duration_to_posix_time_duration.hpp></span></dt>
+<dd><dl></dl></dd>
<dt><span class="section">Header <boost/chrono_time_point_to_posix_time_ptime.hpp></span></dt>
<dt><span class="section">Header <boost/interval.hpp></span></dt>
+<dd><dl></dl></dd>
<dt><span class="section">Header <boost/optional.hpp></span></dt>
+<dd><dl></dl></dd>
<dt><span class="section">Header <boost/rational.hpp></span></dt>
+<dd><dl></dl></dd>
<dt><span class="section">Header <boost/tuple.hpp></span></dt>
</dl></div>
<div class="section">
@@ -1342,11 +1482,11 @@
<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T1<span class="special">,</span> <span class="keyword">typename</span> T2<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> N<span class="special">></span>
<span class="identifier">array</span><span class="special"><</span> <span class="identifier">T1</span><span class="special">,</span> <span class="identifier">N</span> <span class="special">></span>
- <a name="boost.convert_to_id35973470"></a><span class="identifier">convert_to</span><span class="special">(</span><span class="identifier">array</span><span class="special"><</span> <span class="identifier">T2</span><span class="special">,</span> <span class="identifier">N</span> <span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> from<span class="special">,</span>
+ <a class="link" href="boost/convert_to_id35972629.html" title="Function template convert_to"><span class="identifier">convert_to</span></a><span class="special">(</span><span class="identifier">array</span><span class="special"><</span> <span class="identifier">T2</span><span class="special">,</span> <span class="identifier">N</span> <span class="special">></span> <span class="keyword">const</span> <span class="special">&</span><span class="special">,</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">dummy</span><span class="special">::</span><span class="identifier">type_tag</span><span class="special"><</span> <span class="identifier">array</span><span class="special"><</span> <span class="identifier">T1</span><span class="special">,</span> <span class="identifier">N</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>
<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T1<span class="special">,</span> <span class="keyword">typename</span> T2<span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> N<span class="special">></span>
<span class="identifier">array</span><span class="special"><</span> <span class="identifier">T1</span><span class="special">,</span> <span class="identifier">N</span> <span class="special">></span> <span class="special">&</span>
- <a name="boost.assign_to_id35973501"></a><span class="identifier">assign_to</span><span class="special">(</span><span class="identifier">array</span><span class="special"><</span> <span class="identifier">T1</span><span class="special">,</span> <span class="identifier">N</span> <span class="special">></span> <span class="special">&</span> to<span class="special">,</span> <span class="identifier">array</span><span class="special"><</span> <span class="identifier">T2</span><span class="special">,</span> <span class="identifier">N</span> <span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> from<span class="special">,</span>
+ <a class="link" href="boost/assign_to_id35972676.html" title="Function template assign_to"><span class="identifier">assign_to</span></a><span class="special">(</span><span class="identifier">array</span><span class="special"><</span> <span class="identifier">T1</span><span class="special">,</span> <span class="identifier">N</span> <span class="special">></span> <span class="special">&</span><span class="special">,</span> <span class="identifier">array</span><span class="special"><</span> <span class="identifier">T2</span><span class="special">,</span> <span class="identifier">N</span> <span class="special">></span> <span class="keyword">const</span> <span class="special">&</span><span class="special">,</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">dummy</span><span class="special">::</span><span class="identifier">type_tag</span><span class="special"><</span> <span class="identifier">array</span><span class="special"><</span> <span class="identifier">T1</span><span class="special">,</span> <span class="identifier">N</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>
<span class="special">}</span></pre>
</div>
@@ -1358,22 +1498,21 @@
<span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span>
<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Rep<span class="special">,</span> <span class="keyword">typename</span> Period<span class="special">></span>
<span class="identifier">posix_time</span><span class="special">::</span><span class="identifier">time_duration</span>
- <a name="boost.chrono.convert_to_id35973559"></a><span class="identifier">convert_to</span><span class="special">(</span><span class="identifier">chrono</span><span class="special">::</span><span class="identifier">duration</span><span class="special"><</span> <span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span> <span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> from<span class="special">,</span>
+ <a class="link" href="boost/chrono/convert_to_id35972763.html" title="Function template convert_to"><span class="identifier">convert_to</span></a><span class="special">(</span><span class="identifier">chrono</span><span class="special">::</span><span class="identifier">duration</span><span class="special"><</span> <span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span> <span class="special">></span> <span class="keyword">const</span> <span class="special">&</span><span class="special">,</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">dummy</span><span class="special">::</span><span class="identifier">type_tag</span><span class="special"><</span> <span class="identifier">posix_time</span><span class="special">::</span><span class="identifier">time_duration</span> <span class="special">></span> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Rep<span class="special">,</span> <span class="keyword">typename</span> Period<span class="special">></span>
<span class="identifier">chrono</span><span class="special">::</span><span class="identifier">duration</span><span class="special"><</span> <span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span> <span class="special">></span> <span class="special">&</span>
- <a name="boost.chrono.assign_to_id35973587"></a><span class="identifier">assign_to</span><span class="special">(</span><span class="identifier">chrono</span><span class="special">::</span><span class="identifier">duration</span><span class="special"><</span> <span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span> <span class="special">></span> <span class="special">&</span> to<span class="special">,</span>
- <span class="keyword">const</span> <span class="identifier">posix_time</span><span class="special">::</span><span class="identifier">time_duration</span> <span class="special">&</span> from<span class="special">,</span>
+ <a class="link" href="boost/chrono/assign_to_id35972810.html" title="Function template assign_to"><span class="identifier">assign_to</span></a><span class="special">(</span><span class="identifier">chrono</span><span class="special">::</span><span class="identifier">duration</span><span class="special"><</span> <span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span> <span class="special">></span> <span class="special">&</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">posix_time</span><span class="special">::</span><span class="identifier">time_duration</span> <span class="special">&</span><span class="special">,</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">dummy</span><span class="special">::</span><span class="identifier">type_tag</span><span class="special"><</span> <span class="identifier">chrono</span><span class="special">::</span><span class="identifier">duration</span><span class="special"><</span> <span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</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>
<span class="special">}</span>
<span class="keyword">namespace</span> <span class="identifier">posix_time</span> <span class="special">{</span>
<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Duration<span class="special">></span>
- <span class="identifier">Duration</span> <a name="boost.posix_time.convert_to_id35973623"></a><span class="identifier">convert_to</span><span class="special">(</span><span class="identifier">time_duration</span> <span class="keyword">const</span> <span class="special">&</span> from<span class="special">,</span>
+ <span class="identifier">Duration</span> <a class="link" href="boost/posix_time/convert_to_id35972880.html" title="Function template convert_to"><span class="identifier">convert_to</span></a><span class="special">(</span><span class="identifier">time_duration</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">,</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">dummy</span><span class="special">::</span><span class="identifier">type_tag</span><span class="special"><</span> <span class="identifier">Duration</span> <span class="special">></span> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Rep<span class="special">,</span> <span class="keyword">typename</span> Period<span class="special">></span>
<span class="identifier">time_duration</span> <span class="special">&</span>
- <a name="boost.posix_time.assign_to_id35973646"></a><span class="identifier">assign_to</span><span class="special">(</span><span class="identifier">time_duration</span> <span class="special">&</span> to<span class="special">,</span>
- <span class="keyword">const</span> <span class="identifier">chrono</span><span class="special">::</span><span class="identifier">duration</span><span class="special"><</span> <span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span> <span class="special">></span> <span class="special">&</span> from<span class="special">,</span>
+ <a class="link" href="boost/posix_time/assign_to_id35972927.html" title="Function template assign_to"><span class="identifier">assign_to</span></a><span class="special">(</span><span class="identifier">time_duration</span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">chrono</span><span class="special">::</span><span class="identifier">duration</span><span class="special"><</span> <span class="identifier">Rep</span><span class="special">,</span> <span class="identifier">Period</span> <span class="special">></span> <span class="special">&</span><span class="special">,</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">dummy</span><span class="special">::</span><span class="identifier">type_tag</span><span class="special"><</span> <span class="identifier">posix_time</span><span class="special">::</span><span class="identifier">time_duration</span> <span class="special">></span> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span>
<span class="special">}</span>
<span class="special">}</span></pre>
@@ -1386,19 +1525,19 @@
<span class="keyword">namespace</span> <span class="identifier">chrono</span> <span class="special">{</span>
<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Clock<span class="special">,</span> <span class="keyword">typename</span> Duration<span class="special">></span>
<span class="identifier">posix_time</span><span class="special">::</span><span class="identifier">ptime</span>
- <a name="boost.chrono.convert_to_id35973702"></a><span class="identifier">convert_to</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">chrono</span><span class="special">::</span><span class="identifier">time_point</span><span class="special"><</span> <span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span> <span class="special">></span> <span class="special">&</span> from<span class="special">,</span>
+ <a name="boost.chrono.convert_to_id35973016"></a><span class="identifier">convert_to</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">chrono</span><span class="special">::</span><span class="identifier">time_point</span><span class="special"><</span> <span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span> <span class="special">></span> <span class="special">&</span> from<span class="special">,</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">dummy</span><span class="special">::</span><span class="identifier">type_tag</span><span class="special"><</span> <span class="identifier">posix_time</span><span class="special">::</span><span class="identifier">ptime</span> <span class="special">></span> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Clock<span class="special">,</span> <span class="keyword">typename</span> Duration<span class="special">></span>
<span class="identifier">chrono</span><span class="special">::</span><span class="identifier">time_point</span><span class="special"><</span> <span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span> <span class="special">></span> <span class="special">&</span>
- <a name="boost.chrono.assign_to_id35973729"></a><span class="identifier">assign_to</span><span class="special">(</span><span class="identifier">chrono</span><span class="special">::</span><span class="identifier">time_point</span><span class="special"><</span> <span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span> <span class="special">></span> <span class="special">&</span> to<span class="special">,</span>
+ <a name="boost.chrono.assign_to_id35973044"></a><span class="identifier">assign_to</span><span class="special">(</span><span class="identifier">chrono</span><span class="special">::</span><span class="identifier">time_point</span><span class="special"><</span> <span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span> <span class="special">></span> <span class="special">&</span> to<span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">posix_time</span><span class="special">::</span><span class="identifier">ptime</span> <span class="special">&</span> from<span class="special">,</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">dummy</span><span class="special">::</span><span class="identifier">type_tag</span><span class="special"><</span> <span class="identifier">chrono</span><span class="special">::</span><span class="identifier">time_point</span><span class="special"><</span> <span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</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>
<span class="special">}</span>
<span class="keyword">namespace</span> <span class="identifier">posix_time</span> <span class="special">{</span>
<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> TP<span class="special">></span>
- <span class="identifier">TP</span> <a name="boost.posix_time.convert_to_id35973766"></a><span class="identifier">convert_to</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ptime</span> <span class="special">&</span> from<span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dummy</span><span class="special">::</span><span class="identifier">type_tag</span><span class="special"><</span> <span class="identifier">TP</span> <span class="special">></span> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span>
+ <span class="identifier">TP</span> <a name="boost.posix_time.convert_to_id35973080"></a><span class="identifier">convert_to</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ptime</span> <span class="special">&</span> from<span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dummy</span><span class="special">::</span><span class="identifier">type_tag</span><span class="special"><</span> <span class="identifier">TP</span> <span class="special">></span> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span>
<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Clock<span class="special">,</span> <span class="keyword">typename</span> Duration<span class="special">></span>
- <span class="identifier">ptime</span> <span class="special">&</span> <a name="boost.posix_time.assign_to_id35973788"></a><span class="identifier">assign_to</span><span class="special">(</span><span class="identifier">ptime</span> <span class="special">&</span> to<span class="special">,</span>
+ <span class="identifier">ptime</span> <span class="special">&</span> <a name="boost.posix_time.assign_to_id35973103"></a><span class="identifier">assign_to</span><span class="special">(</span><span class="identifier">ptime</span> <span class="special">&</span> to<span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">chrono</span><span class="special">::</span><span class="identifier">time_point</span><span class="special"><</span> <span class="identifier">Clock</span><span class="special">,</span> <span class="identifier">Duration</span> <span class="special">></span> <span class="special">&</span> from<span class="special">,</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">dummy</span><span class="special">::</span><span class="identifier">type_tag</span><span class="special"><</span> <span class="identifier">posix_time</span><span class="special">::</span><span class="identifier">ptime</span> <span class="special">></span> <span class="keyword">const</span> <span class="special">&</span><span class="special">)</span><span class="special">;</span>
<span class="special">}</span>
@@ -1412,11 +1551,11 @@
<span class="keyword">namespace</span> <span class="identifier">numeric</span> <span class="special">{</span>
<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> PT<span class="special">,</span> <span class="keyword">typename</span> U<span class="special">,</span> <span class="keyword">typename</span> PU<span class="special">></span>
<span class="identifier">interval</span><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">PT</span> <span class="special">></span>
- <a name="boost.numeric.convert_to_id35973837"></a><span class="identifier">convert_to</span><span class="special">(</span><span class="identifier">interval</span><span class="special"><</span> <span class="identifier">U</span><span class="special">,</span> <span class="identifier">PU</span> <span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> from<span class="special">,</span>
+ <a class="link" href="boost/numeric/convert_to_id35973151.html" title="Function template convert_to"><span class="identifier">convert_to</span></a><span class="special">(</span><span class="identifier">interval</span><span class="special"><</span> <span class="identifier">U</span><span class="special">,</span> <span class="identifier">PU</span> <span class="special">></span> <span class="keyword">const</span> <span class="special">&</span><span class="special">,</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">dummy</span><span class="special">::</span><span class="identifier">type_tag</span><span class="special"><</span> <span class="identifier">interval</span><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">PT</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>
<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> PT<span class="special">,</span> <span class="keyword">typename</span> U<span class="special">,</span> <span class="keyword">typename</span> PU<span class="special">></span>
<span class="identifier">interval</span><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">PT</span> <span class="special">></span> <span class="special">&</span>
- <a name="boost.numeric.assign_to_id35973873"></a><span class="identifier">assign_to</span><span class="special">(</span><span class="identifier">interval</span><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">PT</span> <span class="special">></span> <span class="special">&</span> to<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">interval</span><span class="special"><</span> <span class="identifier">U</span><span class="special">,</span> <span class="identifier">PU</span> <span class="special">></span> <span class="special">&</span> from<span class="special">,</span>
+ <a name="boost.numeric.assign_to_id35971986"></a><span class="identifier">assign_to</span><span class="special">(</span><span class="identifier">interval</span><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">PT</span> <span class="special">></span> <span class="special">&</span> to<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">interval</span><span class="special"><</span> <span class="identifier">U</span><span class="special">,</span> <span class="identifier">PU</span> <span class="special">></span> <span class="special">&</span> from<span class="special">,</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">dummy</span><span class="special">::</span><span class="identifier">type_tag</span><span class="special"><</span> <span class="identifier">interval</span><span class="special"><</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">PT</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>
<span class="special">}</span>
<span class="special">}</span></pre>
@@ -1428,11 +1567,15 @@
<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Target<span class="special">,</span> <span class="keyword">typename</span> Source<span class="special">></span>
<span class="identifier">optional</span><span class="special"><</span> <span class="identifier">Target</span> <span class="special">></span>
- <a name="boost.convert_to_id35973927"></a><span class="identifier">convert_to</span><span class="special">(</span><span class="identifier">optional</span><span class="special"><</span> <span class="identifier">Source</span> <span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> from<span class="special">,</span>
+ <a class="link" href="boost/convert_to_id35976383.html" title="Function template convert_to"><span class="identifier">convert_to</span></a><span class="special">(</span><span class="identifier">optional</span><span class="special"><</span> <span class="identifier">Source</span> <span class="special">></span> <span class="keyword">const</span> <span class="special">&</span><span class="special">,</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dummy</span><span class="special">::</span><span class="identifier">type_tag</span><span class="special"><</span> <span class="identifier">optional</span><span class="special"><</span> <span class="identifier">Target</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>
+ <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Target<span class="special">,</span> <span class="keyword">typename</span> Source<span class="special">></span>
+ <span class="identifier">optional</span><span class="special"><</span> <span class="identifier">Target</span> <span class="special">></span>
+ <a class="link" href="boost/convert_to_id35976434.html" title="Function template convert_to"><span class="identifier">convert_to</span></a><span class="special">(</span><span class="identifier">Source</span> <span class="keyword">const</span> <span class="special">&</span><span class="special">,</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">dummy</span><span class="special">::</span><span class="identifier">type_tag</span><span class="special"><</span> <span class="identifier">optional</span><span class="special"><</span> <span class="identifier">Target</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>
<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> Target<span class="special">,</span> <span class="keyword">typename</span> Source<span class="special">></span>
<span class="identifier">optional</span><span class="special"><</span> <span class="identifier">Target</span> <span class="special">></span> <span class="special">&</span>
- <a name="boost.assign_to_id35973954"></a><span class="identifier">assign_to</span><span class="special">(</span><span class="identifier">optional</span><span class="special"><</span> <span class="identifier">Target</span> <span class="special">></span> <span class="special">&</span> to<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">optional</span><span class="special"><</span> <span class="identifier">Source</span> <span class="special">></span> <span class="special">&</span> from<span class="special">,</span>
+ <a class="link" href="boost/assign_to_id35976485.html" title="Function template assign_to"><span class="identifier">assign_to</span></a><span class="special">(</span><span class="identifier">optional</span><span class="special"><</span> <span class="identifier">Target</span> <span class="special">></span> <span class="special">&</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">optional</span><span class="special"><</span> <span class="identifier">Source</span> <span class="special">></span> <span class="special">&</span><span class="special">,</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">dummy</span><span class="special">::</span><span class="identifier">type_tag</span><span class="special"><</span> <span class="identifier">optional</span><span class="special"><</span> <span class="identifier">Target</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>
<span class="special">}</span></pre>
</div>
@@ -1443,11 +1586,11 @@
<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> U<span class="special">></span>
<span class="identifier">rational</span><span class="special"><</span> <span class="identifier">T</span> <span class="special">></span>
- <a name="boost.convert_to_id35974000"></a><span class="identifier">convert_to</span><span class="special">(</span><span class="identifier">rational</span><span class="special"><</span> <span class="identifier">U</span> <span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> from<span class="special">,</span>
+ <a class="link" href="boost/convert_to_id35976560.html" title="Function template convert_to"><span class="identifier">convert_to</span></a><span class="special">(</span><span class="identifier">rational</span><span class="special"><</span> <span class="identifier">U</span> <span class="special">></span> <span class="keyword">const</span> <span class="special">&</span><span class="special">,</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">dummy</span><span class="special">::</span><span class="identifier">type_tag</span><span class="special"><</span> <span class="identifier">rational</span><span class="special"><</span> <span class="identifier">T</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>
<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T<span class="special">,</span> <span class="keyword">typename</span> U<span class="special">></span>
<span class="identifier">rational</span><span class="special"><</span> <span class="identifier">T</span> <span class="special">></span> <span class="special">&</span>
- <a name="boost.assign_to_id35974027"></a><span class="identifier">assign_to</span><span class="special">(</span><span class="identifier">rational</span><span class="special"><</span> <span class="identifier">T</span> <span class="special">></span> <span class="special">&</span> to<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">rational</span><span class="special"><</span> <span class="identifier">U</span> <span class="special">></span> <span class="special">&</span> from<span class="special">,</span>
+ <a name="boost.assign_to_id35976604"></a><span class="identifier">assign_to</span><span class="special">(</span><span class="identifier">rational</span><span class="special"><</span> <span class="identifier">T</span> <span class="special">></span> <span class="special">&</span> to<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">rational</span><span class="special"><</span> <span class="identifier">U</span> <span class="special">></span> <span class="special">&</span> from<span class="special">,</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">dummy</span><span class="special">::</span><span class="identifier">type_tag</span><span class="special"><</span> <span class="identifier">rational</span><span class="special"><</span> <span class="identifier">T</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>
<span class="special">}</span></pre>
</div>
@@ -1455,29 +1598,6 @@
<div class="titlepage"><div><div><h4 class="title">
<a name="header.boost.tuple_hpp"></a>Header <boost/tuple.hpp></h4></div></div></div>
<p>Include this file when using conversions between <code class="computeroutput">boost::fusion::tuple<></code> of convertible types. </p>
-<pre class="synopsis"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
- <span class="keyword">namespace</span> <span class="identifier">fusion</span> <span class="special">{</span>
- <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T1<span class="special">,</span> <span class="keyword">typename</span> T2<span class="special">,</span> <span class="keyword">typename</span> U1<span class="special">,</span> <span class="keyword">typename</span> U2<span class="special">></span>
- <span class="identifier">tuple</span><span class="special"><</span> <span class="identifier">T1</span><span class="special">,</span> <span class="identifier">T2</span> <span class="special">></span>
- <a name="boost.fusion.convert_to_id35974075"></a><span class="identifier">convert_to</span><span class="special">(</span><span class="identifier">tuple</span><span class="special"><</span> <span class="identifier">U1</span><span class="special">,</span> <span class="identifier">U2</span> <span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> from<span class="special">,</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dummy</span><span class="special">::</span><span class="identifier">type_tag</span><span class="special"><</span> <span class="identifier">tuple</span><span class="special"><</span> <span class="identifier">T1</span><span class="special">,</span> <span class="identifier">T2</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>
- <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T1<span class="special">,</span> <span class="keyword">typename</span> T2<span class="special">,</span> <span class="keyword">typename</span> U1<span class="special">,</span> <span class="keyword">typename</span> U2<span class="special">></span>
- <span class="identifier">tuple</span><span class="special"><</span> <span class="identifier">T1</span><span class="special">,</span> <span class="identifier">T2</span> <span class="special">></span> <span class="special">&</span>
- <a name="boost.fusion.assign_to_id35974111"></a><span class="identifier">assign_to</span><span class="special">(</span><span class="identifier">tuple</span><span class="special"><</span> <span class="identifier">T1</span><span class="special">,</span> <span class="identifier">T2</span> <span class="special">></span> <span class="special">&</span> to<span class="special">,</span> <span class="identifier">tuple</span><span class="special"><</span> <span class="identifier">U1</span><span class="special">,</span> <span class="identifier">U2</span> <span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> from<span class="special">,</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dummy</span><span class="special">::</span><span class="identifier">type_tag</span><span class="special"><</span> <span class="identifier">tuple</span><span class="special"><</span> <span class="identifier">T1</span><span class="special">,</span> <span class="identifier">T2</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>
- <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T1<span class="special">,</span> <span class="keyword">typename</span> T2<span class="special">,</span> <span class="keyword">typename</span> T3<span class="special">,</span> <span class="keyword">typename</span> U1<span class="special">,</span> <span class="keyword">typename</span> U2<span class="special">,</span>
- <span class="keyword">typename</span> U3<span class="special">></span>
- <span class="identifier">tuple</span><span class="special"><</span> <span class="identifier">T1</span><span class="special">,</span> <span class="identifier">T2</span><span class="special">,</span> <span class="identifier">T3</span> <span class="special">></span>
- <a name="boost.fusion.convert_to_id35974153"></a><span class="identifier">convert_to</span><span class="special">(</span><span class="identifier">tuple</span><span class="special"><</span> <span class="identifier">U1</span><span class="special">,</span> <span class="identifier">U2</span><span class="special">,</span> <span class="identifier">U3</span> <span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> from<span class="special">,</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dummy</span><span class="special">::</span><span class="identifier">type_tag</span><span class="special"><</span> <span class="identifier">tuple</span><span class="special"><</span> <span class="identifier">T1</span><span class="special">,</span> <span class="identifier">T2</span><span class="special">,</span> <span class="identifier">T3</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>
- <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> T1<span class="special">,</span> <span class="keyword">typename</span> T2<span class="special">,</span> <span class="keyword">typename</span> T3<span class="special">,</span> <span class="keyword">typename</span> U1<span class="special">,</span> <span class="keyword">typename</span> U2<span class="special">,</span>
- <span class="keyword">typename</span> U3<span class="special">></span>
- <span class="identifier">tuple</span><span class="special"><</span> <span class="identifier">T1</span><span class="special">,</span> <span class="identifier">T2</span><span class="special">,</span> <span class="identifier">T3</span> <span class="special">></span>
- <a name="boost.fusion.assign_to_id35974197"></a><span class="identifier">assign_to</span><span class="special">(</span><span class="identifier">tuple</span><span class="special"><</span> <span class="identifier">T1</span><span class="special">,</span> <span class="identifier">T2</span><span class="special">,</span> <span class="identifier">T3</span> <span class="special">></span> <span class="special">&</span> to<span class="special">,</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">tuple</span><span class="special"><</span> <span class="identifier">U1</span><span class="special">,</span> <span class="identifier">U2</span><span class="special">,</span> <span class="identifier">U3</span> <span class="special">></span> <span class="keyword">const</span> <span class="special">&</span> from<span class="special">,</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dummy</span><span class="special">::</span><span class="identifier">type_tag</span><span class="special"><</span> <span class="identifier">tuple</span><span class="special"><</span> <span class="identifier">T1</span><span class="special">,</span> <span class="identifier">T2</span><span class="special">,</span> <span class="identifier">T3</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>
- <span class="special">}</span>
-<span class="special">}</span></pre>
</div>
</div>
</div>
@@ -1733,7 +1853,7 @@
<a name="boost.conversion.appendices.rationale"></a><a class="link" href="index.html#boost.conversion.appendices.rationale" title="Appendix B: Rationale">Appendix B: Rationale</a>
</h3></div></div></div>
<a name="boost.conversion.appendices.rationale.trick_to_avoid_recursion_on_the_convert_to_calls"></a><h5>
-<a name="id36369754"></a>
+<a name="id36377583"></a>
<a class="link" href="index.html#boost.conversion.appendices.rationale.trick_to_avoid_recursion_on_the_convert_to_calls">Trick
to avoid recursion on the convert_to calls</a>
</h5>
@@ -1743,23 +1863,23 @@
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
<code class="computeroutput"><span class="identifier">conversion_impl</span></code> is put
- outside the boost namespace, to avoid infinite recursion (causing stack
- overflow) when converting objects of a primitive type.
+ outside the boost::conversion namespace, to avoid infinite recursion
+ (causing stack overflow) when converting objects of a primitive type.
</li>
<li class="listitem">
<code class="computeroutput"><span class="identifier">conversion_impl</span></code> has a
using-directive <code class="computeroutput"><span class="keyword">using</span> <span class="keyword">namespace</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">conversion</span><span class="special">;</span></code>,
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">conversion_2</span><span class="special">;</span></code>,
rather than a using-declaration, because some compilers (including MSVC
7.1, Borland 5.9.3, and Intel 8.1) don't do argument-dependent lookup
when it has a using-declaration instead.
</li>
<li class="listitem">
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">convert_to</span></code> has an additional template
+ <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">conversion</span><span class="special">::</span><span class="identifier">convert_to</span></code> has an additional template
argument, a tag, to avoid ambiguity between the <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">conversion</span><span class="special">::</span><span class="identifier">convert_to</span></code>
- and <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">convert_to</span></code> and the when converting
- from objects of a Boost type that does not have its own <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">convert_to</span></code> overload. This additional
- argument is a reference to a base tag class <code class="computeroutput"><span class="identifier">dummy</span><span class="special">::</span><span class="identifier">base_tag</span><span class="special"><</span><span class="identifier">Target</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span></code> for the <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">convert_to</span></code>
+ and <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">conversion_2</span><span class="special">::</span><span class="identifier">convert_to</span></code> and the when converting
+ from objects of a Boost type that does not have its own <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">conversion</span><span class="special">::</span><span class="identifier">convert_to</span></code> overload. This additional
+ argument is a reference to a base tag class <code class="computeroutput"><span class="identifier">dummy</span><span class="special">::</span><span class="identifier">base_tag</span><span class="special"><</span><span class="identifier">Target</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span></code> for the <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">conversion</span><span class="special">::</span><span class="identifier">convert_to</span></code>
and a reference derived tag class <code class="computeroutput"><span class="identifier">dummy</span><span class="special">::</span><span class="identifier">type_tag</span><span class="special"><</span><span class="identifier">To</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span></code> for all others.
</li>
</ul></div>
@@ -1772,24 +1892,24 @@
In this way
</p>
<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Target</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Source</span><span class="special">></span>
-<span class="identifier">Target</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">convert_to</span><span class="special">(</span><span class="identifier">Source</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">from</span><span class="special">,</span> <span class="identifier">dummy</span><span class="special">::</span><span class="identifier">base_tag</span><span class="special"><</span><span class="identifier">Target</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">p</span><span class="special">=</span><span class="identifier">dummy</span><span class="special">::</span><span class="identifier">base_tag</span><span class="special"><</span><span class="identifier">Target</span><span class="special">>())</span> <span class="special">{</span>
+<span class="identifier">Target</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">conversion</span><span class="special">::</span><span class="identifier">convert_to</span><span class="special">(</span><span class="identifier">Source</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">from</span><span class="special">,</span> <span class="identifier">dummy</span><span class="special">::</span><span class="identifier">base_tag</span><span class="special"><</span><span class="identifier">Target</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">p</span><span class="special">=</span><span class="identifier">dummy</span><span class="special">::</span><span class="identifier">base_tag</span><span class="special"><</span><span class="identifier">Target</span><span class="special">>())</span> <span class="special">{</span>
</pre>
<p>
would be never chosen when called in this context
</p>
-<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">conversion</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">conversion_2</span><span class="special">;</span>
<span class="keyword">return</span> <span class="identifier">convert_to</span><span class="special">(</span><span class="identifier">from</span><span class="special">,</span> <span class="identifier">dummy</span><span class="special">::</span><span class="identifier">type_tag</span><span class="special"><</span><span class="identifier">Target</span><span class="special">>());</span>
</pre>
<p>
as the library defines
</p>
-<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">conversion</span> <span class="special">{</span>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">conversion_2</span> <span class="special">{</span>
<span class="keyword">template</span> <span class="special"><</span> <span class="keyword">typename</span> <span class="identifier">To</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">From</span> <span class="special">></span>
- <span class="identifier">To</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">convert_to</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">From</span><span class="special">&</span> <span class="identifier">val</span><span class="special">,</span> <span class="identifier">dummy</span><span class="special">::</span><span class="identifier">type_tag</span><span class="special"><</span><span class="identifier">To</span><span class="special">></span> <span class="keyword">const</span><span class="special">&);</span>
+ <span class="identifier">To</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">conversion</span><span class="special">::</span><span class="identifier">convert_to</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">From</span><span class="special">&</span> <span class="identifier">val</span><span class="special">,</span> <span class="identifier">dummy</span><span class="special">::</span><span class="identifier">type_tag</span><span class="special"><</span><span class="identifier">To</span><span class="special">></span> <span class="keyword">const</span><span class="special">&);</span>
<span class="special">}</span>
</pre>
<a name="boost.conversion.appendices.rationale.trick_to_avoid_the_use_of_the_tag_on_the_user_side"></a><h5>
-<a name="id36370581"></a>
+<a name="id36378460"></a>
<a class="link" href="index.html#boost.conversion.appendices.rationale.trick_to_avoid_the_use_of_the_tag_on_the_user_side">Trick
to avoid the use of the tag on the user side</a>
</h5>
@@ -1803,7 +1923,7 @@
To avoid to pass it as parameter the tag parameter has a default value boost::dummy::base_tag<Target>().
</p>
<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Target</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Source</span><span class="special">></span>
-<span class="identifier">Target</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">convert_to</span><span class="special">(</span><span class="identifier">Source</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">from</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dummy</span><span class="special">::</span><span class="identifier">base_tag</span><span class="special"><</span><span class="identifier">Target</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">p</span><span class="special">=</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dummy</span><span class="special">::</span><span class="identifier">base_tag</span><span class="special"><</span><span class="identifier">Target</span><span cl
ass="special">>())</span> <span class="special">{</span>
+<span class="identifier">Target</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">conversion</span><span class="special">::</span><span class="identifier">convert_to</span><span class="special">(</span><span class="identifier">Source</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">from</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">dummy</span><span class="special">::</span><span class="identifier">base_tag</span><span class="special"><</span><span class="identifier">Target</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">p</span><span class="special">=</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dummy</span><span class="special">::</span><span class="identifier">base_tag</span><span
class="special"><</span><span class="identifier">Target</span><span class="special">>())</span> <span class="special">{</span>
</pre>
<p>
This default value needs however to give the Target template parameter
@@ -1811,7 +1931,7 @@
<pre class="programlisting"><span class="identifier">a</span><span class="special">=</span> <span class="identifier">convert_to</span><span class="special"><</span><span class="identifier">A</span><span class="special">>(</span><span class="identifier">b</span><span class="special">);</span>
</pre>
<a name="boost.conversion.appendices.rationale.mathematical_background"></a><h5>
-<a name="id36370897"></a>
+<a name="id36378784"></a>
<a class="link" href="index.html#boost.conversion.appendices.rationale.mathematical_background">Mathematical
background</a>
</h5>
@@ -1865,7 +1985,7 @@
The library provides a convert_to_via function which helps to implement that.
</p>
<a name="boost.conversion.appendices.rationale.ambiguity_of_multiple_overloadins"></a><h5>
-<a name="id36371386"></a>
+<a name="id36379274"></a>
<a class="link" href="index.html#boost.conversion.appendices.rationale.ambiguity_of_multiple_overloadins">Ambiguity
of multiple overloadins</a>
</h5>
@@ -1885,7 +2005,7 @@
C: Implementation Notes</a>
</h3></div></div></div>
<a name="boost.conversion.appendices.implementation.why__code__phrase_role__identifier__convert_to__phrase___code__between_tuples_is_not_implemented_using__code__phrase_role__identifier__boost__phrase__phrase_role__special______phrase__phrase_role__identifier__fusion__phrase__phrase_role__special______phrase__phrase_role__identifier__transform__phrase___code__"></a><h5>
-<a name="id36371428"></a>
+<a name="id36379316"></a>
<a class="link" href="index.html#boost.conversion.appendices.implementation.why__code__phrase_role__identifier__convert_to__phrase___code__between_tuples_is_not_implemented_using__code__phrase_role__identifier__boost__phrase__phrase_role__special______phrase__phrase_role__identifier__fusion__phrase__phrase_role__special______phrase__phrase_role__identifier__transform__phrase___code__">Why
<code class="computeroutput"><span class="identifier">convert_to</span></code> between tuples
is not implemented using <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">transform</span></code>?</a>
@@ -3036,12 +3156,12 @@
plans</a>
</h3></div></div></div>
<a name="boost.conversion.appendices.todo.tasks_to_do_before_review"></a><h5>
-<a name="id36373816"></a>
+<a name="id36381707"></a>
<a class="link" href="index.html#boost.conversion.appendices.todo.tasks_to_do_before_review">Tasks
to do before review</a>
</h5>
<a name="boost.conversion.appendices.todo.for_later_releases"></a><h5>
-<a name="id36373834"></a>
+<a name="id36381726"></a>
<a class="link" href="index.html#boost.conversion.appendices.todo.for_later_releases">For later
releases</a>
</h5>
@@ -3054,7 +3174,7 @@
</li>
</ul></div>
<a name="boost.conversion.appendices.todo.make_a_proposal_to_the_c___standard"></a><h5>
-<a name="id36373871"></a>
+<a name="id36381763"></a>
<a class="link" href="index.html#boost.conversion.appendices.todo.make_a_proposal_to_the_c___standard">Make
a proposal to the C++ standard</a>
</h5>
@@ -3118,10 +3238,10 @@
</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: April 10, 2011 at 15:19:12 GMT</small></p></td>
+<td align="left"><p><small>Last revised: May 25, 2011 at 22:15:20 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td>
</tr></table>
<hr>
-<div class="spirit-nav"><a accesskey="n" href="boost/conversion/partial_specialization__id35972110/assign_to.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a></div>
+<div class="spirit-nav"><a accesskey="n" href="boost/conversion/overload_workaround/assign_to.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a></div>
</body>
</html>
Modified: sandbox/conversion/libs/conversion_ext/doc/html/standalone_HTML.manifest
==============================================================================
--- sandbox/conversion/libs/conversion_ext/doc/html/standalone_HTML.manifest (original)
+++ sandbox/conversion/libs/conversion_ext/doc/html/standalone_HTML.manifest 2011-05-25 18:30:57 EDT (Wed, 25 May 2011)
@@ -1,28 +1,54 @@
index.html
-boost/conversion/partial_specialization__id35972110/assign_to.html
-boost/assign_to_id35972207.html
+boost/conversion/overload_workaround/assign_to.html
+boost/conversion/assign_to_id35974124.html
+boost/conversion_2/assign_to_id35974194.html
boost/conversion/ca_wrapper.html
boost/mca.html
-boost/conversion/partial_specialization__id35972604/convert_to.html
+boost/conversion/overload_workaround/convert_to.html
+boost/conversion/enable_functor.html
+boost/conversion/convert_to_id35974710.html
boost/dummy/base_tag.html
boost/dummy/type_tag.html
-boost/convert_to_id35972717.html
+boost/conversion/enable_functor_T__typen_id35974986.html
+boost/conversion/convert_to_id35975024.html
+boost/conversion/overload_workaround/convert_to_or_fallback.html
+boost/conversion/convert_to_or_fallback_id35975263.html
+boost/convert_to_or_fallback_id35975332.html
boost/conversion/result_of/pack2.html
boost/conversion/result_of/pack3.html
-boost/conversion/pack_id35972919.html
-boost/conversion/pack_id35972952.html
-boost/conversion/pack_id35972984.html
-boost/conversion/pack_id35973027.html
-boost/conversion/pack_id35973070.html
-boost/conversion/pack_id35973112.html
-boost/conversion/partial_specialization__id35971370/convert_to_std_complex__id35971372.html
-boost/conversion/partial_specialization__id35971370/assign_to_std_complex_T_id35971406.html
-boost/conversion/partial_specialization__id35971458/convert_to_std_pair_T1__id35971461.html
-boost/conversion/partial_specialization__id35971458/assign_to_std_pair_T1___id35971507.html
-boost/conversion/partial_specialization__id35971572/convert_to_std_basic_st_id35971575.html
-boost/conversion/partial_specialization__id35971572/assign_to_std_basic_str_id35971620.html
-boost/conversion/partial_specialization__id35971572/convert_to_T__std_basic_id35971671.html
-boost/conversion/partial_specialization__id35971572/assign_to_T__std_basic__id35971717.html
-boost/conversion/partial_specialization__id35971784/convert_to_std_vector_T_id35971787.html
-boost/conversion/partial_specialization__id35971784/assign_to_std_vector_T1_id35973164.html
-boost/conversion/partial_specialization__id35971784/convert_to_std_vector_T_id35973218.html
+boost/conversion/pack_id35975535.html
+boost/conversion/pack_id35975568.html
+boost/conversion/pack_id35975600.html
+boost/conversion/pack_id35975643.html
+boost/conversion/pack_id35975686.html
+boost/conversion/pack_id35975728.html
+boost/conversion/overload_workaround/try_assign_to.html
+boost/conversion/try_assign_to_id35975910.html
+boost/try_assign_to_id35975967.html
+boost/conversion/overload_workaround/try_convert_to.html
+boost/conversion/try_convert_to_id35976188.html
+boost/conversion_2/try_convert_to_id35976260.html
+boost/conversion/overload_workaround/convert_to_std_complex__id35973887.html
+boost/conversion/overload_workaround/assign_to_std_complex_T_id35973920.html
+boost/conversion/overload_workaround/convert_to_std_pair_T1__id35973976.html
+boost/conversion/overload_workaround/assign_to_std_pair_T1___id35973205.html
+boost/conversion/overload_workaround/convert_to_std_basic_st_id35973273.html
+boost/conversion/overload_workaround/convert_to_T__std_basic_id35971993.html
+boost/conversion/overload_workaround/assign_to_std_basic_str_id35972039.html
+boost/conversion/overload_workaround/assign_to_T__std_basic__id35972089.html
+boost/conversion/overload_workaround/convert_to_std_string___id35972140.html
+boost/conversion/overload_workaround/convert_to_bool__std_st_id35972165.html
+boost/conversion/overload_workaround/convert_to_std_vector_T_id35972210.html
+boost/conversion/overload_workaround/assign_to_std_vector_T1_id35972258.html
+boost/conversion/overload_workaround/convert_to_std_vector_T_id35972313.html
+boost/convert_to_id35972629.html
+boost/assign_to_id35972676.html
+boost/chrono/convert_to_id35972763.html
+boost/chrono/assign_to_id35972810.html
+boost/posix_time/convert_to_id35972880.html
+boost/posix_time/assign_to_id35972927.html
+boost/numeric/convert_to_id35973151.html
+boost/convert_to_id35976383.html
+boost/convert_to_id35976434.html
+boost/assign_to_id35976485.html
+boost/convert_to_id35976560.html
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