/* REQUIRED_ARGS: -extern-std=c++98 -HC -c -o- -Icompilable/extra-files PERMUTE_ARGS: EXTRA_FILES: extra-files/dtoh_imports.d extra-files/dtoh_imports2.d TEST_OUTPUT: --- // Automatically generated by Digital Mars D Compiler #pragma once #include #include #include #include #ifdef CUSTOM_D_ARRAY_TYPE #define _d_dynamicArray CUSTOM_D_ARRAY_TYPE #else /// Represents a D [] array template struct _d_dynamicArray final { size_t length; T *ptr; _d_dynamicArray() : length(0), ptr(NULL) { } _d_dynamicArray(size_t length_in, T *ptr_in) : length(length_in), ptr(ptr_in) { } T& operator[](const size_t idx) { assert(idx < length); return ptr[idx]; } const T& operator[](const size_t idx) const { assert(idx < length); return ptr[idx]; } }; #endif class ImportsC { }; struct Null final { void* field; _d_dynamicArray< const char > null_; private: Null(int32_t ); public: Null() : field(NULL), null_() { } Null(void* field, _d_dynamicArray< const char > null_ = _d_dynamicArray< const char >()) : field(field), null_(null_) {} }; extern void* typeof_null; extern void* inferred_null; struct MyString final { _d_dynamicArray< const char > str; MyString() : str() { } MyString(_d_dynamicArray< const char > str) : str(str) {} }; struct Wrapper final { MyString s1; MyString s2; Wrapper() : s1(MyString(_d_dynamicArray< const char >( 5, "Hello" ))), s2(MyString(_d_dynamicArray< const char >())) { } Wrapper(MyString s1, MyString s2 = MyString(_d_dynamicArray< const char >())) : s1(s1), s2(s2) {} }; class UsingBase { public: virtual void foo(); }; class UsingChild : public UsingBase { public: }; --- */ extern (C++) struct Null { void* field = null; string null_ = null; @disable this(int); } extern (C++) __gshared typeof(null) typeof_null = null; extern (C++) __gshared inferred_null = null; extern (C++) struct MyString { string str; } extern (C++) struct Wrapper { MyString s1 = MyString("Hello"); MyString s2 = MyString(null); } extern (C++) class UsingBase { void foo() {} } extern (C++) class UsingChild : UsingBase { alias foo = UsingBase.foo; } public import dtoh_imports : aliasName = ImportsC;