template aliases and sfinae
问题 In the case of a substitution failure involving a template alias ( e.g. a template alias on a missing member typename, as in the code snippet below), should an error be triggered ? Clang and gcc seem to disagree on this: // some types struct bar { }; struct foo { typedef void member_type; }; // template alias template<class T> using member = typename T::member_type; template<class T> void baz(... ) { } // only works for gcc, clang fails with: no type named 'member_type' // in 'bar' template