https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62085
--- Comment #3 from James Lyon <jameslyon0 at gmail dot com> --- Thanks for looking! Unfortunately I don't have access to EDG. I have dug through the standard and it seems my understanding of SFINAE was (is) a bit lacking and GCC is indeed correct. It seems there's a bug in clang here instead. On 11/08/14 11:12, redi at gcc dot gnu.org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62085 > > --- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- > For a short piece of code with no external dependencies it's simpler to just > paste it into a comment than attach it: > > template<typename T> > struct A { > T f(); > }; > > template<typename T, typename Enable=void> struct B {}; > template<typename T> struct B<T, typename A<T>::type> {}; > > struct C { > virtual ~C() = 0; > }; > > int main() { > B<C>(); > } > > > EDG rejects it for the same reason as GCC. >