[GCC-XML] compilation pb running gccxml on code using SFINAE
Brad King
brad.king at kitware.com
Wed Jun 6 17:33:24 EDT 2007
MOSS Sebastian wrote:
> The code I posted was a complete example in itself - ie no use of Boost
> macros. I tried the static const approach as well - as I'm using some
> template specializations using has_nested_value_type<>::value - I got
> the complementary error 'non-const type cannot be used as a template
> param'.
>
> So ultimately I guess this is a limitation with gcc3.3 right?
Here is a different implementation that works in gcc versions all the
way back to 2.95:
template <typename T>
struct has_nested_value_type_helper
{
typedef char (&true_type)[1];
typedef char (&false_type)[2];
template <class U> true_type static impl(typename U::value_type const*);
template <class U> false_type static impl(...);
};
template <typename T>
class has_nested_value_type
{
typedef has_nested_value_type_helper<T> helper;
public:
static const bool value = (sizeof(helper::template impl<T>(0)) ==
sizeof(typename helper::true_type));
};
-Brad
More information about the gccxml
mailing list