[clang] Add tracking source deduction guide for the explicitly-written
[llvm-project.git] / lldb / test / API / lang / cpp / preferred_name / main.cpp
blobdd9cf22d94b2de3ca023781754f04d111875d971
1 template <typename T> struct Foo;
3 typedef Foo<int> BarInt;
4 typedef Foo<double> BarDouble;
6 template <typename T> using Bar = Foo<T>;
8 template <typename 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{};
14 int main() {
15 BarInt barInt;
16 BarDouble barDouble;
17 Bar<short> barShort;
18 Bar<char> barChar;
20 Foo<int> varInt;
21 Foo<double> varDouble;
22 Foo<short> varShort;
23 Foo<char> varChar;
24 Foo<Foo<int>> varFooInt;
25 return 0;