Boost logo

Boost :

From: Aleksey Gurtovoy (agurtovoy_at_[hidden])
Date: 2002-10-16 15:34:22

Howard Hinnant wrote:
> Section 3.9.2/1 just as clearly gives union a classification distinct
> from class. <shrug>

It still says that they are classes:

    "-- unions, which are classes capable of containing objects of different
types at different times"

> The type traits lib used 3.9 as the guide,

OK, I can understand that.

> and I think a distinction between class and union is useful in practice.

Sure, that's what 'is_union' is for :).

One particular reason why I am raising this question is that a simple and
clean 'is_class' implementation below (based on Paul Mensonides work)
naturally gives you a positive answer on union arguments as well:

// from boost/type_traits/is_class.hpp
template <typename T>
struct is_class_impl
    template <class U> static ::boost::type_traits::yes_type
    template <class U> static ::boost::type_traits::no_type

    BOOST_STATIC_CONSTANT(bool, value =
        sizeof(is_class_tester<T>(0)) ==

We either need to make it conform to our current 'is_class' definition by
explicitly handling that case, or fix the definition.


Boost list run by bdawes at, gregod at, cpdaniel at, john at