Type not inherited in SFINAE for multiple inheritance?
问题 I am using a SFINAE mechanism to deduce a type. Resolve<T>::type is deduced to T if class T doesn't contain yes and it's deduced to MyClass if it contains yes . class MyClass {}; template<typename> struct void_ { typedef void check; }; template<typename T, typename = void> struct Resolve { typedef T type; }; template<typename T> struct Resolve <T, typename void_<typename T::yes>::check> { typedef MyClass type; }; Now, I have the simple test classes as, struct B1 { typedef int yes; }; // 1