1 // { dg-do compile { target c++11 } } 2 3 template<typename _Tp> 4 struct get_first_arg; 5 6 template<template<typename, typename...> class _Template, typename _Tp, 7 typename... _Types> 8 struct get_first_arg<_Template<_Tp, _Types...>> 9 { using type = _Tp; }; 10 11 template<typename T> struct A { }; 12 13 template<class,class> struct same; 14 template<class T> struct same<T,T> {}; 15 16 same<get_first_arg<A<int>>::type, 17 int> x; 18