template <typename Type> \
class has_inherited_member_##NAME { \
class yes { char m;}; \
class no { yes m[2];}; \
struct base_mixin { void NAME(){} }; \
struct base : public Type, public base_mixin {}; \
template <typename T, T t> class helper{}; \
template <typename U> \
static no deduce(U*, helper<void (base_mixin::*)(), &U::NAME>* = 0); \
static yes deduce(...); \
public: \
static const bool value = sizeof(yes) == sizeof(deduce((base*)(0))); \
typedef std::integral_constant<bool, value> type; \
};