11 #ifndef BOOST_TT_IS_ENUM_HPP_INCLUDED
12 #define BOOST_TT_IS_ENUM_HPP_INCLUDED
26 #if defined(BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION)
35 #if !(defined(__BORLANDC__) && (__BORLANDC__ <= 0x551))
39 #if defined(BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION)
42 struct is_class_or_union
52 # if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x581))// we simply can't detect it this way.
57 # if BOOST_WORKAROUND(__MWERKS__, <= 0x3000) // no SFINAE
78 template <
bool is_
typename_arithmetic_or_reference = true>
81 template <
typename T>
struct type
90 template <
typename T>
struct type
101 #if defined(__GNUC__)
103 #ifdef BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION
122 #endif // BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION
124 #else // !defined(__GNUC__):
134 #if BOOST_WORKAROUND(__BORLANDC__, < 0x600)
135 typedef ::boost::detail::is_enum_helper<
139 typedef ::boost::detail::is_enum_helper<selector>
se_t;
150 #else // __BORLANDC__
158 #else // BOOST_IS_ENUM
160 template <
class T>
struct is_enum :
public integral_constant<bool, BOOST_IS_ENUM(T)> {};
166 #endif // BOOST_TT_IS_ENUM_HPP_INCLUDED