Updated to use BOOST_NO_IS_ABSTRACT.

[SVN r26424]
This commit is contained in:
John Maddock
2004-12-04 12:05:42 +00:00
parent bbbd77d3e9
commit 22d2d9b641
2 changed files with 14 additions and 4 deletions

View File

@@ -358,9 +358,16 @@
<TD vAlign="top" bgColor="#c0c0c0"><code>::boost::is_abstract&lt;T&gt;::value</code></TD>
<TD vAlign="top" bgColor="#c0c0c0">Evaluates true only if T is abstract class.</TD>
<TD vAlign="top" bgColor="#c0c0c0">10.3</TD>
<TD vAlign="top" bgColor="#c0c0c0">Compiler must support DR337 (as Jan 2004: GCC
3.4,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VC++ 7.1, Intel C++ 7, Comeau 4.3.2).</TD>
<TD vAlign="top" bgColor="#c0c0c0">
<P>Compiler must support DR337 (as Jan 2004: GCC 3.4, VC++ 7.1, Intel C++ 7, and
Comeau 4.3.2).</P>
<P>Otherwise produces the same value as is_polymorphic&lt;T&gt;::value; this is
the&nbsp;"safe fallback position" for which&nbsp;polymorphic types&nbsp;are
always regarded as potentially abstract.</P>
<P>The macro BOOST_NO_IS_ABSTRACT is used to signify that the implemention is
buggy, users should check for this in their own code if the "safe fallback" is
not suitable for their particular use-case.</P>
</TD>
<TD vAlign="top" width="5%"></TD>
</TR>
<tr>

View File

@@ -255,7 +255,9 @@ BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestAD&>::value), false);
BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestAE&>::value), false);
BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestAF&>::value), false);
BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestAG&>::value), false);
#if !(defined(BOOST_MSVC) && (BOOST_MSVC < 1310))
// MSVC prior to VC7.1 always runs out of swap space trying to
// compile these, so leave them out for now (the test fails anyway).
BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestA<int> >::value), false);
BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestB<int> >::value), true);
BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestC<int> >::value), true);
@@ -425,6 +427,7 @@ BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestAD<int>& >::value), false)
BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestAE<int>& >::value), false);
BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestAF<int>& >::value), false);
BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestAG<int>& >::value), false);
#endif
TT_TEST_END