From 12f070b38e105e3706bc4db7c9e62ab63f754dc5 Mon Sep 17 00:00:00 2001 From: John Maddock Date: Sun, 1 Feb 2004 16:16:11 +0000 Subject: [PATCH] Removed is_abstract from this release, too many problems, too late in the day... [SVN r22106] --- include/boost/type_traits/is_abstract.hpp | 91 --------- index.html | 163 +++++++-------- test/Jamfile | 1 - test/is_abstract_test.cpp | 231 ---------------------- 4 files changed, 74 insertions(+), 412 deletions(-) delete mode 100755 include/boost/type_traits/is_abstract.hpp delete mode 100755 test/is_abstract_test.cpp diff --git a/include/boost/type_traits/is_abstract.hpp b/include/boost/type_traits/is_abstract.hpp deleted file mode 100755 index 2d2ff0b..0000000 --- a/include/boost/type_traits/is_abstract.hpp +++ /dev/null @@ -1,91 +0,0 @@ -#ifndef BOOST_TT_IS_ABSTRACT_CLASS_HPP -#define BOOST_TT_IS_ABSTRACT_CLASS_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// is_abstract_class.hpp: -// -// (C) Copyright 2002 Rani Sharoni (rani_sharoni@hotmail.com) and Robert Ramey -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// See http://www.boost.org for updates, documentation, and revision history. -// - -// Compile type discovery whether given type is abstract class or not. -// -// Requires DR 337 to be supported by compiler -// (http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/cwg_active.html#337). -// -// -// Believed (Jan 2004) to work on: -// - GCC 3.4 -// - VC++ 7.1 -// - compilers with new EDG frontend (Intel C++ 7, Comeau 4.3.2) -// -// Doesn't work on: -// - VC++6, VC++7.0 and less -// - GCC 3.3.X and less -// - Borland C++ 6 and less -// -// -// History: -// - Originally written by Rani Sharoni, see -// http://groups.google.com/groups?selm=df893da6.0207110613.75b2fe90%40posting.google.com -// At this time supported by EDG (Intel C++ 7, Comeau 4.3.2) and VC7.1. -// - Adapted and added into Boost.Serialization library by Robert Ramey -// (starting with submission #10). -// - Jan 2004: GCC 3.4 fixed to suport DR337 (Giovanni Bajo). -// - Jan 2004: modified to be part of Boost.TypeTraits (Pavel Vozenilek). -// - -#include -#include -#include "boost/type_traits/detail/ice_and.hpp" -// should be the last #include -#include "boost/type_traits/detail/bool_trait_def.hpp" - - -namespace boost { -namespace detail{ - -template -struct is_abstract_imp -{ - // Deduction fails if T is void, function type, - // reference type (14.8.2/2)or an abstract class type - // according to review status issue #337 - // - template - static type_traits::no_type check(U (*)[1]); - template - static type_traits::yes_type check(...); - - // GCC2 won't even parse this template if we embed the computation - // of s1 in the computation of value. -#ifdef __GNUC__ - BOOST_STATIC_CONSTANT(unsigned, s1 = sizeof(is_abstract_imp::template check(0))); -#else - BOOST_STATIC_CONSTANT(unsigned, s1 = sizeof(check(0))); -#endif - - BOOST_STATIC_CONSTANT(bool, value = - (::boost::type_traits::ice_and< - ::boost::is_class::value, - (s1 == sizeof(type_traits::yes_type)) - >::value)); -}; - -} - -BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_abstract,T,::boost::detail::is_abstract_imp::value) - -} // namespace boost - -#include "boost/type_traits/detail/bool_trait_undef.hpp" - -#endif //BOOST_TT_IS_ABSTRACT_CLASS_HPP diff --git a/index.html b/index.html index 1657756..6d109ad 100644 --- a/index.html +++ b/index.html @@ -298,20 +298,20 @@   - ::boost::alignment_of<T>::value - + ::boost::alignment_of<T>::value +

Identifies the alignment requirements of T. Actually returns a value that is only guaranteed to be a multiple of the actual alignment requirements of T.

T must be a complete type.

-   -   +   +       - ::boost::is_empty<T>::value - + ::boost::is_empty<T>::value +

True if T is an empty struct or class. If the compiler implements the "zero sized empty base classes" optimisation, then is_empty will correctly guess whether T is empty. Relies upon is_class to determine whether T is a class @@ -319,9 +319,9 @@

T must be a complete type.

-

10p5

+

10p5

-

Relies on the compiler +

Relies on the compiler implementing zero sized empty base classes in order to detect empty classes.

Can not be used with incomplete types.

@@ -334,75 +334,63 @@   - ::boost::is_const<T>::value - Evaluates to true only if T is - top-level const-qualified. -

3.9.3

+ ::boost::is_const<T>::value + Evaluates to true only if T is top-level + const-qualified. +

3.9.3

-   +       - ::boost::is_volatile<T>::value - Evaluates to true only if T is + ::boost::is_volatile<T>::value + Evaluates to true only if T is volatile-qualified. -

3.9.3

+

3.9.3

-   -   - - - - ::boost::is_abstract<T>::value - Evaluates true only if T is - abstract class. - 10.3 - Compiler must support DR337 (as Jan - 2004: GCC 3.4,
-       VC++ 7.1, Intel C++ 7, Comeau 4.3.2). - - - -   - ::boost::is_polymorphic<T>::value - Evaluates to true only if T is a - polymorphic type. -

T must be a complete type.

- - 10.3 - Requires knowledge of the compilers - ABI, does actually seem to work with the majority of compilers though. +       - ::boost::is_pod<T>::value - Evaluates to true only if T is a - cv-qualified POD type. + ::boost::is_polymorphic<T>::value + Evaluates to true only if T is a polymorphic + type.

T must be a complete type.

-

3.9p10

+ 10.3 + Requires knowledge of the compilers ABI, does + actually seem to work with the majority of compilers though. +   + + +   + ::boost::is_pod<T>::value + Evaluates to true only if T is a cv-qualified + POD type. +

T must be a complete type.

+ +

3.9p10

9p4

- Without some (as yet unspecified) - help from the compiler, is_pod will never report that a class or struct is a - POD; this is always safe, if possibly sub-optimal.

If the compiler does not - support partial-specialization of class templates, then this template can not - be used with function types.

+ Without some (as yet unspecified) help from the + compiler, is_pod will never report that a class or struct is a POD; this is + always safe, if possibly sub-optimal.

If the compiler does not support + partial-specialization of class templates, then this template can not be used + with function types.

    - ::boost::has_trivial_constructor<T>::value - True if T has a trivial default - constructor. - 12.1p5 -

Without some (as yet - unspecified) help from the compiler, has_trivial_constructor will - never report that a class or struct has a trivial constructor; this is always - safe, if possibly sub-optimal.

+ ::boost::has_trivial_constructor<T>::value + True if T has a trivial default constructor. + 12.1p5 +

Without some (as yet unspecified) + help from the compiler, has_trivial_constructor will never report + that a class or struct has a trivial constructor; this is always safe, if + possibly sub-optimal.

If the compiler does not support partial-specialization of class templates, then this template can not be used with function types.

@@ -410,16 +398,15 @@   - ::boost::has_trivial_copy<T>::value - True if T has a trivial copy - constructor. + ::boost::has_trivial_copy<T>::value + True if T has a trivial copy constructor.

T must be a complete type.

- 12.8p6 -

Without some (as yet - unspecified) help from the compiler, has_trivial_copy will never - report that a class or struct has a trivial copy constructor; this is always - safe, if possibly sub-optimal.

+ 12.8p6 +

Without some (as yet unspecified) + help from the compiler, has_trivial_copy will never report that a + class or struct has a trivial copy constructor; this is always safe, if + possibly sub-optimal.

If the compiler does not support partial-specialization of class templates, then this template can not be used with function types.

@@ -427,16 +414,15 @@   - ::boost::has_trivial_assign<T>::value - True if T has a trivial assignment - operator. + ::boost::has_trivial_assign<T>::value + True if T has a trivial assignment operator.

T must be a complete type.

- 12.8p11 -

Without some (as yet - unspecified) help from the compiler, has_trivial_assign will never - report that a class or struct has a trivial assignment operator; this is always - safe, if possibly sub-optimal.

+ 12.8p11 +

Without some (as yet unspecified) + help from the compiler, has_trivial_assign will never report that + a class or struct has a trivial assignment operator; this is always safe, if + possibly sub-optimal.

If the compiler does not support partial-specialization of class templates, then this template can not be used with function types.

@@ -444,15 +430,15 @@   - ::boost::has_trivial_destructor<T>::value - True if T has a trivial destructor. + ::boost::has_trivial_destructor<T>::value + True if T has a trivial destructor.

T must be a complete type.

- 12.4p3 -

Without some (as yet - unspecified) help from the compiler, has_trivial_destructor will - never report that a class or struct has a trivial destructor; this is always - safe, if possibly sub-optimal.

+ 12.4p3 +

Without some (as yet unspecified) + help from the compiler, has_trivial_destructor will never report + that a class or struct has a trivial destructor; this is always safe, if + possibly sub-optimal.

If the compiler does not support partial-specialization of class templates, then this template can not be used with function types.

@@ -460,16 +446,15 @@   - ::boost::is_stateless<T>::value - True if T is stateless, meaning - that T has no storage and its constructors and destructors are trivial. + ::boost::is_stateless<T>::value + True if T is stateless, meaning that T has no + storage and its constructors and destructors are trivial.

T must be a complete type.

-   -

Without some (as yet - unspecified) help from the compiler, is_stateless will never - report that a class or struct is_stateless; this is always safe, if possibly - sub-optimal.

+   +

Without some (as yet unspecified) + help from the compiler, is_stateless will never report that a + class or struct is_stateless; this is always safe, if possibly sub-optimal.

Will report true only if all of the following also report true:

::boost::has_trivial_constructor<T>::value,
 ::boost::has_trivial_copy<T>::value,
@@ -688,7 +673,7 @@ bool const y = boost::is_convertible<D*,A*>::value;     // error
             8.3.4
             

If the compiler does not support partial-specialization of class templates, then this template will compile, but - will have no effect, except where noted below.

+ will have no effect.

  diff --git a/test/Jamfile b/test/Jamfile index dcfd359..5658d8f 100644 --- a/test/Jamfile +++ b/test/Jamfile @@ -45,7 +45,6 @@ test-suite type_traits : [ type-traits-run has_trivial_constr_test.cpp ] [ type-traits-run has_trivial_copy_test.cpp ] [ type-traits-run has_trivial_destructor_test.cpp ] -[ type-traits-run is_abstract_test.cpp ] [ type-traits-run is_arithmetic_test.cpp ] [ type-traits-run is_array_test.cpp ] [ type-traits-run is_base_and_derived_test.cpp ] diff --git a/test/is_abstract_test.cpp b/test/is_abstract_test.cpp deleted file mode 100755 index 6e56aa4..0000000 --- a/test/is_abstract_test.cpp +++ /dev/null @@ -1,231 +0,0 @@ - -// (C) Copyright Rani Sharoni,Robert Ramey and Pavel Vozenilek 2004. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - - -#include "test.hpp" -#include "check_integral_constant.hpp" -#ifdef TEST_STD -# include -#else -# include -#endif - - -struct TestA {}; -struct TestB { virtual void foo(void) = 0; }; -struct TestC { private: virtual void foo(void) = 0; }; -struct TestD : TestA {}; -struct TestE : TestB {}; -struct TestF : TestC {}; -struct TestG : TestB { virtual void foo(void) {} }; -struct TestH : TestC { private: virtual void foo(void) {} }; -struct TestI : TestB, TestC {}; -struct TestJ : TestI { virtual void foo(void) {} }; -struct TestK : TestB { virtual void foo(void); virtual void foo2(void) = 0; }; -struct TestL : TestK { virtual void foo2(void) {} }; -struct TestM : virtual TestB {}; -struct TestN : virtual TestC {}; -struct TestO : TestM, TestN {}; -struct TestP : TestO { virtual void foo(void) {} }; -struct TestQ : TestB { virtual void foo(void) = 0; }; -struct TestR : TestC { private: virtual void foo(void) = 0; }; -struct TestS { virtual void foo(void) {} }; -struct TestT { virtual ~TestT(void) {} virtual void foo(void) {} }; -struct TestU : TestT { virtual void foo(void) = 0; }; -struct TestV : TestT { virtual void foo(void) {} }; -struct TestW { virtual void foo1(void) = 0; virtual void foo2(void) = 0; }; -struct TestX : TestW { virtual void foo1(void) {} virtual void foo2(void) {} }; -struct TestY { virtual ~TestY(void) = 0; }; -struct TestZ { virtual ~TestZ(void) = 0; }; TestZ::~TestZ(void) {} -struct TestAA : TestZ { virtual ~TestAA(void) = 0; }; TestAA::~TestAA(void) {} -struct TestAB : TestAA { virtual ~TestAB(void) {} }; -struct TestAC { virtual void foo(void) = 0; }; void TestAC::foo(void) {} -struct TestAD : TestAC {}; -struct TestAE : TestAD { virtual void foo() {} }; -struct TestAF : TestAD { virtual void foo(); }; void TestAF::foo(void) {} -struct TestAG : virtual TestA {}; - - -TT_TEST_BEGIN(is_abstract) - -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); // only one method implemented! -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); // ??? -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); - -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); // only one method implemented! -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); // ??? -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); - -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); // only one method implemented! -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); // ??? -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); - -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); // only one method implemented! -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); // ??? -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), true); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); - -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); // only one method implemented! -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); // ??? -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); -BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract::value), false); - -TT_TEST_END - - - - - - -