
[Edward Diener]
https://connect.microsoft.com/VisualStudio/feedback/details/624757/incorrect...
Is this sufficient for your purposes? (Requires VC10.) C:\Temp>type meow.cpp #include <type_traits> #define DEFINE_HAS_MEMBER(NAME) \ template <typename T> class has_member_ ## NAME { \ private: \ template <typename U> static std::true_type helper(decltype(&U::NAME)); \ template <typename U> static std::false_type helper(...); \ public: \ typedef decltype(helper<T>(nullptr)) type; \ static const bool value = type::value; \ }; DEFINE_HAS_MEMBER(cMem) struct Gipf { }; struct Dvonn { Gipf cMem; }; struct Tzaar { bool cMem; }; struct Yinsh { int Zertz; }; int main() { static_assert(has_member_cMem<Dvonn>::value, "Dvonn"); static_assert(has_member_cMem<Tzaar>::value, "Tzaar"); static_assert(!has_member_cMem<Yinsh>::value, "Yinsh"); } C:\Temp>cl /EHsc /nologo /W4 meow.cpp meow.cpp C:\Temp> Stephan T. Lavavej Visual C++ Libraries Developer