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