template<class ... T> struct S{ template<int> struct A{}; template<T...> struct B{}; template<template<T...> class> struct C{}; }; S<int>::C<S<int>::B> s1; S<int>::C<S<int>::A> s2;//gcc5.1.0 fails, clang3.6.0 succeeds int main(){}
you can check here http://melpon.org/wandbox/permlink/hhy70gO9LMjLq9nU
Which one is right, gcc or clang?
source share