Consider the following:
struct A {
typedef int foo;
};
struct B {};
template
struct C {};
I wa
Something like this might help: has_member.
typedef char (&no_tag)[1];
typedef char (&yes_tag)[2];
template< typename T > no_tag has_member_foo_helper(...);
template< typename T > yes_tag has_member_foo_helper(int, void (T::*)() = &T::foo);
template< typename T > struct has_member_foo {
BOOST_STATIC_CONSTANT(bool
, value = sizeof(has_member_foo_helper(0)) == sizeof(yes_tag)
); };
template::value>
struct C {};