template struct Foo; typedef Foo BarInt; typedef Foo BarDouble; template using Bar = Foo; template struct [[clang::preferred_name(BarInt), clang::preferred_name(BarDouble), clang::preferred_name(Bar), clang::preferred_name(Bar), clang::preferred_name(Bar), clang::preferred_name(Bar)]] Foo{}; int main() { BarInt barInt; BarDouble barDouble; Bar barShort; Bar barChar; Foo varInt; Foo varDouble; Foo varShort; Foo varChar; Foo> varFooInt; return 0; }