With XL C++, these traits behave as specified in the following section.
template <typename T> struct is_class{};
template <typename T> struct is_union{};
XL C++ does not take advantage of this latitude. Full implementations of these type traits are provided