// CWG 150: Matching of template template-arguments excludes compatible // templates // { dg-options -fnew-ttp-matching } template class B { /* ... */ }; #if __cpp_variadic_templates template class C { /* ... */ }; #endif template class P, class T> void f(P); int main() { f(B()); f(B()); // { dg-error "no match" } #if __cpp_variadic_templates f(C()); #endif }