| /* |
| REQUIRED_ARGS: -HC=verbose -c -o- |
| PERMUTE_ARGS: |
| TEST_OUTPUT: |
| --- |
| // Automatically generated by Digital Mars D Compiler v$n$ |
| |
| #pragma once |
| |
| #include <assert.h> |
| #include <math.h> |
| #include <stddef.h> |
| #include <stdint.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 |
| |
| struct Foo final |
| { |
| int32_t a; |
| enum : int32_t { b = 2 }; |
| |
| // Ignored enum `dtoh_21217.Foo.c` because it is `private`. |
| protected: |
| enum : int32_t { d = 4 }; |
| |
| enum : int32_t { e = 5 }; |
| |
| public: |
| enum : int32_t { f = 6 }; |
| |
| enum : int32_t { g = 7 }; |
| |
| private: |
| enum class Bar |
| { |
| a = 1, |
| b = 2, |
| }; |
| |
| // Ignored enum `dtoh_21217.Foo.h` because it is `private`. |
| public: |
| Foo() : |
| a(1) |
| { |
| } |
| Foo(int32_t a) : |
| a(a) |
| {} |
| }; |
| |
| --- |
| */ |
| |
| |
| extern(C++) struct Foo { |
| int a = 1; |
| enum b = 2; |
| private enum c = 3; |
| protected enum d = 4; |
| package enum e = 5; |
| public enum f = 6; |
| export enum g = 7; |
| |
| private enum Bar { a = 1, b = 2 } |
| private enum h = Bar.a; |
| } |