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(){}
您可以在这里测试 http://melpon.org/wandbox/permlink/hhy70gO9LMjLq9nU
哪一个是正确的,gcc还是clang?