forked from boostorg/type_traits
Document the restrictions on is_virtual_base_of.
Refs #3730. [SVN r67913]
This commit is contained in:
@@ -57,7 +57,7 @@
|
||||
method available to them.
|
||||
</p>
|
||||
<a name="boost_typetraits.background.type_traits"></a><h5>
|
||||
<a name="id986977"></a>
|
||||
<a name="id1005124"></a>
|
||||
<a class="link" href="background.html#boost_typetraits.background.type_traits">Type Traits</a>
|
||||
</h5>
|
||||
<p>
|
||||
@@ -85,7 +85,7 @@
|
||||
given.
|
||||
</p>
|
||||
<a name="boost_typetraits.background.implementation"></a><h5>
|
||||
<a name="id987041"></a>
|
||||
<a name="id1005188"></a>
|
||||
<a class="link" href="background.html#boost_typetraits.background.implementation">Implementation</a>
|
||||
</h5>
|
||||
<p>
|
||||
@@ -175,7 +175,7 @@
|
||||
in the default template.
|
||||
</p>
|
||||
<a name="boost_typetraits.background.optimized_copy"></a><h5>
|
||||
<a name="id995492"></a>
|
||||
<a name="id1014129"></a>
|
||||
<a class="link" href="background.html#boost_typetraits.background.optimized_copy">Optimized copy</a>
|
||||
</h5>
|
||||
<p>
|
||||
@@ -248,7 +248,7 @@
|
||||
otherwise it will call the "slow but safe version".
|
||||
</p>
|
||||
<a name="boost_typetraits.background.was_it_worth_it_"></a><h5>
|
||||
<a name="id995858"></a>
|
||||
<a name="id1014495"></a>
|
||||
<a class="link" href="background.html#boost_typetraits.background.was_it_worth_it_">Was it worth it?</a>
|
||||
</h5>
|
||||
<p>
|
||||
@@ -380,7 +380,7 @@
|
||||
</table></div>
|
||||
</div>
|
||||
<br class="table-break"><a name="boost_typetraits.background.pair_of_references"></a><h5>
|
||||
<a name="id996055"></a>
|
||||
<a name="id1014691"></a>
|
||||
<a class="link" href="background.html#boost_typetraits.background.pair_of_references">Pair of References</a>
|
||||
</h5>
|
||||
<p>
|
||||
@@ -598,7 +598,7 @@
|
||||
easier to maintain and easier to understand.
|
||||
</p>
|
||||
<a name="boost_typetraits.background.conclusion"></a><h5>
|
||||
<a name="id996899"></a>
|
||||
<a name="id1015535"></a>
|
||||
<a class="link" href="background.html#boost_typetraits.background.conclusion">Conclusion</a>
|
||||
</h5>
|
||||
<p>
|
||||
@@ -611,7 +611,7 @@
|
||||
can be optimal as well as generic.
|
||||
</p>
|
||||
<a name="boost_typetraits.background.acknowledgements"></a><h5>
|
||||
<a name="id996916"></a>
|
||||
<a name="id1015552"></a>
|
||||
<a class="link" href="background.html#boost_typetraits.background.acknowledgements">Acknowledgements</a>
|
||||
</h5>
|
||||
<p>
|
||||
@@ -619,7 +619,7 @@
|
||||
comments when preparing this article.
|
||||
</p>
|
||||
<a name="boost_typetraits.background._anchor_id__background_references____references"></a><h5>
|
||||
<a name="id996932"></a>
|
||||
<a name="id1015569"></a>
|
||||
<a class="link" href="background.html#boost_typetraits.background._anchor_id__background_references____references"><a name="background.references"></a> References</a>
|
||||
</h5>
|
||||
<div class="orderedlist"><ol type="1">
|
||||
|
@@ -104,7 +104,7 @@
|
||||
<span class="keyword">struct</span> <a class="link" href="../reference/remove_volatile.html" title="remove_volatile">remove_volatile</a><span class="special">;</span>
|
||||
</pre>
|
||||
<a name="boost_typetraits.category.transform.broken_compiler_workarounds_"></a><h5>
|
||||
<a name="id1000993"></a>
|
||||
<a name="id1020176"></a>
|
||||
<a class="link" href="transform.html#boost_typetraits.category.transform.broken_compiler_workarounds_">Broken
|
||||
Compiler Workarounds:</a>
|
||||
</h5>
|
||||
|
@@ -28,7 +28,7 @@
|
||||
<a name="boost_typetraits.history"></a><a class="link" href="history.html" title="History">History</a>
|
||||
</h2></div></div></div>
|
||||
<a name="boost_typetraits.history.boost_1_45_0"></a><h5>
|
||||
<a name="id1058463"></a>
|
||||
<a name="id1077080"></a>
|
||||
<a class="link" href="history.html#boost_typetraits.history.boost_1_45_0">Boost 1.45.0</a>
|
||||
</h5>
|
||||
<div class="itemizedlist"><ul type="disc">
|
||||
@@ -44,7 +44,7 @@
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="boost_typetraits.history.boost_1_44_0"></a><h5>
|
||||
<a name="id1058523"></a>
|
||||
<a name="id1077140"></a>
|
||||
<a class="link" href="history.html#boost_typetraits.history.boost_1_44_0">Boost 1.44.0</a>
|
||||
</h5>
|
||||
<div class="itemizedlist"><ul type="disc">
|
||||
@@ -60,7 +60,7 @@
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="boost_typetraits.history.boost_1_42_0"></a><h5>
|
||||
<a name="id1058578"></a>
|
||||
<a name="id1077195"></a>
|
||||
<a class="link" href="history.html#boost_typetraits.history.boost_1_42_0">Boost 1.42.0</a>
|
||||
</h5>
|
||||
<div class="itemizedlist"><ul type="disc"><li>
|
||||
|
@@ -74,7 +74,7 @@
|
||||
template arguments is 3.
|
||||
</p>
|
||||
<a name="boost_typetraits.reference.common_type.configuration_macros"></a><h5>
|
||||
<a name="id1015452"></a>
|
||||
<a name="id1034093"></a>
|
||||
<a class="link" href="common_type.html#boost_typetraits.reference.common_type.configuration_macros">Configuration
|
||||
macros</a>
|
||||
</h5>
|
||||
@@ -104,7 +104,7 @@
|
||||
Otherwise when BOOST_COMMON_TYPE_DONT_USE_TYPEOF is not defined it uses Boost.TypeOf.
|
||||
</p>
|
||||
<a name="boost_typetraits.reference.common_type.tutorial"></a><h5>
|
||||
<a name="id1015510"></a>
|
||||
<a name="id1034150"></a>
|
||||
<a class="link" href="common_type.html#boost_typetraits.reference.common_type.tutorial">Tutorial</a>
|
||||
</h5>
|
||||
<p>
|
||||
@@ -139,7 +139,7 @@
|
||||
This is a very useful and broadly applicable utility.
|
||||
</p>
|
||||
<a name="boost_typetraits.reference.common_type.how_to_get_the_common_type_of_types_with_explicit_conversions_"></a><h5>
|
||||
<a name="id1015811"></a>
|
||||
<a name="id1034451"></a>
|
||||
<a class="link" href="common_type.html#boost_typetraits.reference.common_type.how_to_get_the_common_type_of_types_with_explicit_conversions_">How
|
||||
to get the common type of types with explicit conversions?</a>
|
||||
</h5>
|
||||
@@ -161,7 +161,7 @@
|
||||
<span class="special">};</span>
|
||||
</pre>
|
||||
<a name="boost_typetraits.reference.common_type.how_important_is_the_order_of_the_common_type_lt__gt__template_arguments_"></a><h5>
|
||||
<a name="id1016111"></a>
|
||||
<a name="id1034751"></a>
|
||||
<a class="link" href="common_type.html#boost_typetraits.reference.common_type.how_important_is_the_order_of_the_common_type_lt__gt__template_arguments_">How
|
||||
important is the order of the common_type<> template arguments?</a>
|
||||
</h5>
|
||||
@@ -241,7 +241,7 @@
|
||||
<span class="identifier">A</span><span class="special">></span></code>.
|
||||
</p>
|
||||
<a name="boost_typetraits.reference.common_type.can_the_common_type_of_two_types_be_a_third_type_"></a><h5>
|
||||
<a name="id1016977"></a>
|
||||
<a name="id1035618"></a>
|
||||
<a class="link" href="common_type.html#boost_typetraits.reference.common_type.can_the_common_type_of_two_types_be_a_third_type_">Can
|
||||
the common_type of two types be a third type?</a>
|
||||
</h5>
|
||||
@@ -268,7 +268,7 @@
|
||||
<span class="identifier">B</span><span class="special">></span></code>.
|
||||
</p>
|
||||
<a name="boost_typetraits.reference.common_type.how_common_type_behaves_with_pointers_"></a><h5>
|
||||
<a name="id1017257"></a>
|
||||
<a name="id1035897"></a>
|
||||
<a class="link" href="common_type.html#boost_typetraits.reference.common_type.how_common_type_behaves_with_pointers_">How
|
||||
common_type behaves with pointers?</a>
|
||||
</h5>
|
||||
@@ -304,7 +304,7 @@
|
||||
Of course the user can always make this specialization.
|
||||
</p>
|
||||
<a name="boost_typetraits.reference.common_type.can_you_explain_the_pros_cons_of_common_type_against_boost_typeof_"></a><h5>
|
||||
<a name="id1017541"></a>
|
||||
<a name="id1036182"></a>
|
||||
<a class="link" href="common_type.html#boost_typetraits.reference.common_type.can_you_explain_the_pros_cons_of_common_type_against_boost_typeof_">Can
|
||||
you explain the pros/cons of common_type against Boost.Typeof?</a>
|
||||
</h5>
|
||||
|
@@ -56,24 +56,22 @@
|
||||
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../doc/src/images/note.png"></td>
|
||||
<th align="left">Note</th>
|
||||
</tr>
|
||||
<tr><td align="left" valign="top">
|
||||
<p>
|
||||
<tr><td align="left" valign="top"><p>
|
||||
There are a small number of cases where it's simply not possible for this
|
||||
trait to work, and where attempting to instantiate the trait will cause
|
||||
compiler errors (see bug report <a href="https://svn.boost.org/trac/boost/ticket/3730" target="_top">#3730).
|
||||
compiler errors (see bug report <a href="https://svn.boost.org/trac/boost/ticket/3730" target="_top">#3730</a>).
|
||||
Further more the issues may well be compiler specific. In this situation
|
||||
the user should supply a full specialization of the trait to work around
|
||||
the problem.</a>
|
||||
</p>
|
||||
<p>
|
||||
<span class="bold"><strong>Examples:</strong></span>
|
||||
</p>
|
||||
<p>
|
||||
[:Given: <code class="computeroutput"> <span class="keyword">class</span> <span class="identifier">Base</span><span class="special">{};</span> <span class="keyword">class</span> <span class="identifier">Derived</span> <span class="special">:</span> <span class="keyword">public</span> <span class="keyword">virtual</span>
|
||||
<span class="identifier">Base</span><span class="special">{};</span></code>
|
||||
</p>
|
||||
</td></tr>
|
||||
the problem.
|
||||
</p></td></tr>
|
||||
</table></div>
|
||||
<p>
|
||||
<span class="bold"><strong>Examples:</strong></span>
|
||||
</p>
|
||||
<div class="blockquote"><blockquote class="blockquote"><p>
|
||||
Given: <code class="computeroutput"> <span class="keyword">class</span> <span class="identifier">Base</span><span class="special">{};</span> <span class="keyword">class</span> <span class="identifier">Derived</span> <span class="special">:</span> <span class="keyword">public</span> <span class="keyword">virtual</span>
|
||||
<span class="identifier">Base</span><span class="special">{};</span></code>
|
||||
</p></blockquote></div>
|
||||
<div class="blockquote"><blockquote class="blockquote"><p>
|
||||
<code class="computeroutput"><span class="identifier">is_virtual_base_of</span><span class="special"><</span><span class="identifier">Base</span><span class="special">,</span> <span class="identifier">Derived</span><span class="special">></span></code>
|
||||
inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
|
||||
|
@@ -31,7 +31,7 @@
|
||||
Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen, Robert
|
||||
Ramey and Jeremy Siek</p></div>
|
||||
<div><div class="legalnotice">
|
||||
<a name="id986829"></a><p>
|
||||
<a name="id1004975"></a><p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@@ -25,7 +25,7 @@
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="id1058675"></a>Class Index</h2></div></div></div>
|
||||
<a name="id1077292"></a>Class Index</h2></div></div></div>
|
||||
<p><a class="link" href="s11.html#idx_id_0">A</a> <a class="link" href="s11.html#idx_id_1">C</a> <a class="link" href="s11.html#idx_id_2">D</a> <a class="link" href="s11.html#idx_id_3">E</a> <a class="link" href="s11.html#idx_id_4">F</a> <a class="link" href="s11.html#idx_id_5">H</a> <a class="link" href="s11.html#idx_id_6">I</a> <a class="link" href="s11.html#idx_id_7">M</a> <a class="link" href="s11.html#idx_id_8">P</a> <a class="link" href="s11.html#idx_id_9">R</a> <a class="link" href="s11.html#idx_id_10">T</a> </p>
|
||||
<div class="variablelist"><dl>
|
||||
<dt>
|
||||
|
@@ -25,7 +25,7 @@
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="id1059879"></a>Typedef Index</h2></div></div></div>
|
||||
<a name="id1079037"></a>Typedef Index</h2></div></div></div>
|
||||
<p><a class="link" href="s12.html#idx_id_11">F</a> <a class="link" href="s12.html#idx_id_12">R</a> <a class="link" href="s12.html#idx_id_13">T</a> </p>
|
||||
<div class="variablelist"><dl>
|
||||
<dt>
|
||||
|
@@ -25,7 +25,7 @@
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="id1059965"></a>Macro Index</h2></div></div></div>
|
||||
<a name="id1079122"></a>Macro Index</h2></div></div></div>
|
||||
<p><a class="link" href="s13.html#idx_id_14">B</a> </p>
|
||||
<div class="variablelist"><dl>
|
||||
<dt>
|
||||
|
@@ -24,7 +24,7 @@
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="id1060293"></a>Index</h2></div></div></div>
|
||||
<a name="id1079451"></a>Index</h2></div></div></div>
|
||||
<p><a class="link" href="s14.html#idx_id_15">A</a> <a class="link" href="s14.html#idx_id_16">B</a> <a class="link" href="s14.html#idx_id_17">C</a> <a class="link" href="s14.html#idx_id_18">D</a> <a class="link" href="s14.html#idx_id_19">E</a> <a class="link" href="s14.html#idx_id_20">F</a> <a class="link" href="s14.html#idx_id_21">H</a> <a class="link" href="s14.html#idx_id_22">I</a> <a class="link" href="s14.html#idx_id_23">M</a> <a class="link" href="s14.html#idx_id_24">P</a> <a class="link" href="s14.html#idx_id_25">R</a> <a class="link" href="s14.html#idx_id_26">S</a> <a class="link" href="s14.html#idx_id_27">T</a> <a class="link" href="s14.html#idx_id_28">U</a> </p>
|
||||
<div class="variablelist"><dl>
|
||||
<dt>
|
||||
|
@@ -23,7 +23,7 @@ __compat this trait also requires a working __is_base_of trait.
|
||||
[note
|
||||
There are a small number of cases where it's simply not possible for this trait to work, and
|
||||
where attempting to instantiate the trait will cause compiler errors (see bug report
|
||||
[@https://svn.boost.org/trac/boost/ticket/3730 #3730). Further more the issues may well
|
||||
[@https://svn.boost.org/trac/boost/ticket/3730 #3730]). Further more the issues may well
|
||||
be compiler specific. In this situation the user should supply a full specialization of
|
||||
the trait to work around the problem.]
|
||||
|
||||
|
Reference in New Issue
Block a user