| /* |
| 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 <assert.h> |
| #include <stddef.h> |
| #include <stdint.h> |
| #include <math.h> |
| |
| #ifdef CUSTOM_D_ARRAY_TYPE |
| #define _d_dynamicArray CUSTOM_D_ARRAY_TYPE |
| #else |
| /// Represents a D [] array |
| template<typename T> |
| 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; |