1 template <typename T
> struct Foo
;
3 typedef Foo
<int> BarInt
;
4 typedef Foo
<double> BarDouble
;
6 template <typename T
> using Bar
= Foo
<T
>;
9 struct [[clang::preferred_name(BarInt
), clang::preferred_name(BarDouble
),
10 clang::preferred_name(Bar
<short>), clang::preferred_name(Bar
<short>),
11 clang::preferred_name(Bar
<double>),
12 clang::preferred_name(Bar
<char>)]] Foo
{};
21 Foo
<double> varDouble
;
24 Foo
<Foo
<int>> varFooInt
;