5 // Automatically generated by Digital Mars D Compiler
14 #ifdef CUSTOM_D_ARRAY_TYPE
15 #define _d_dynamicArray CUSTOM_D_ARRAY_TYPE
17 /// Represents a D [] array
19 struct _d_dynamicArray final
24 _d_dynamicArray() : length(0), ptr(NULL) { }
26 _d_dynamicArray(size_t length_in, T *ptr_in)
27 : length(length_in), ptr(ptr_in) { }
29 T& operator[](const size_t idx) {
34 const T& operator[](const size_t idx) const {
42 struct ExternDStruct2;
43 struct ExternDStruct3;
45 struct ExternDStruct final
54 ExternDStruct(int32_t i, double d = NAN) :
60 enum class ExternDEnum
66 struct ExternDStructTemplate final
68 // Ignoring var i alignment 0
70 // Ignoring var d alignment 0
72 ExternDStructTemplate()
79 virtual void __vtable_slot_0();
80 virtual void __vtable_slot_1();
81 virtual void __vtable_slot_2();
82 virtual void __vtable_slot_3();
86 virtual void __vtable_slot_4();
87 virtual void __vtable_slot_5();
92 class ExternDClass : public Object
99 struct ExternDStruct2 final
107 struct ExternDStruct3 final
114 ExternDStruct3(int32_t a) :
119 namespace ExternDEnum2
121 static ExternDStruct3 const A = ExternDStruct3(1);
124 struct ExternCppStruct final
128 ExternDStructTemplate< > st;
134 ExternCppStruct(ExternDStruct s, ExternDEnum e = (ExternDEnum)0, ExternDStructTemplate< > st = ExternDStructTemplate< >(0, NAN)) :
141 extern ExternDClass* globalC;
143 extern void foo(int32_t arg = globalC.i);
145 extern ExternDStruct2* globalS2;
147 extern void bar(int32_t arg = globalS2->doStuff());
149 extern /* ExternDEnum2 */ ExternDStruct3* globalE2;
151 extern void baz(int32_t arg = globalE2->a);
155 - class declarations must be emitted on member access
158 // extern(D) symbols are ignored upon first visit but required later
165 // None of these can be emitted due to the mismatched mangling
166 static double staticDouble
;
167 static shared double staticSharedDouble
;
168 __gshared
double sharedDouble
;
171 struct ExternDStruct2
173 extern(C
++) int doStuff()
179 struct ExternDStruct3
195 enum ExternDEnum2
: ExternDStruct3
197 A
= ExternDStruct3(1)
200 struct ExternDStructTemplate()
208 struct ExternCppStruct
212 ExternDStructTemplate
!() st
;
215 __gshared ExternDClass globalC
;
217 void foo(int arg
= globalC
.i
) {}
219 __gshared ExternDStruct2
* globalS2
;
221 void bar(int arg
= globalS2
.doStuff()) {}
223 __gshared ExternDEnum2
* globalE2
;
225 void baz(int arg
= globalE2
.a
) {}