1 // EXTRA_CPP_SOURCES: extra-files/externmangle2.cpp
36 struct Test32(alias Y, alias Z)
42 void test32a(Test32!(Test32NS1.Foo, Test32NS1.Foo) arg);
43 void test32b(Test32!(Test32NS1.Foo, Test32NS1.Bar) arg);
44 void test32c(Test32!(Test32NS1.Foo, Test32NS2.Foo) arg);
45 void test32d(Test32!(Test32NS1.Foo, Test32NS2.Foo) arg1, Test32!(Test32NS2.Foo, Test32NS1.Foo) arg2);
51 void test33a(XXX, XXX*);
54 struct Test33(alias A, alias B)
59 void test33(XXX, Test33!(test33a, test33a) arg, XXX);
62 struct Test34(alias A)
72 void test34(Test34!(Test34A.foo) arg);
75 __gshared extern int test36;
78 struct Test37(alias A)
84 __gshared extern int t38;
87 void test37(Test37!(test36) arg);
88 void test38(Test37!(Test37A.t38) arg);
102 void test39(Test39.T39A!(.T39A));
106 version(Posix) //Only for g++ with -std=c++0x and Visual Studio 2013+
109 struct Test40(T, V...)
114 void test40(Test40!(int, double, void))
118 else version(Win64) //Only for g++ with -std=c++0x and Visual Studio 2013+
121 struct Test40(T, V...)
126 void test40(Test40!(int, double, void))
133 __gshared extern const XXX test41;
136 __gshared extern const XXX test42;
138 __gshared extern int[4] test43;
143 test32a(Test32!(Test32NS1.Foo, Test32NS1.Foo)());
144 test32b(Test32!(Test32NS1.Foo, Test32NS1.Bar)());
145 test32c(Test32!(Test32NS1.Foo, Test32NS2.Foo)());
146 test32d(Test32!(Test32NS1.Foo, Test32NS2.Foo)(), Test32!(Test32NS2.Foo, Test32NS1.Foo)());
148 //test33a(null, null);
149 //test33(null, Test33!(test33a, test33a)(), null);
151 //test34(Test34!(Test34A.foo)());
153 assert(test36 == 36);
155 //test37(Test37!(test36)());
156 //test38(Test37!(Test37A.t38)());
157 test39(Test39.T39A!(.T39A)());
159 assert(test41 is null);
160 assert(Test42.test42 is null);
161 assert(test43 == [1, 2, 3, 4]);