2 template<typename T
= int> struct A
{};
3 template<typename T
> struct B
{};
4 template<typename T
> struct C
;
5 template<typename T
> struct D
;
6 template<typename T
> struct E
;
7 template<typename T
= int> struct G
;
8 template<typename T
= int> struct H
;
9 template<typename T
> struct J
{};
10 template<typename T
= int> struct J
;
12 template<typename T
= void> struct L
;
14 template<typename T
> friend struct L
;
18 namespace DeferredLookup
{
19 template<typename T
, typename U
= T
> using X
= U
;
20 template<typename T
> void f() { (void) X
<T
>(); }
21 template<typename T
> int n
= X
<T
>();
22 template<typename T
> struct S
{ X
<T
> xt
; enum E
: int; };
23 template<typename T
> enum S
<T
>::E
: int { a
= X
<T
>() };
26 template<typename
, bool = true> struct A
{};
27 template<typename
> struct B
{ template<typename T
> using C
= A
<T
>; };