/+
REQUIRED_ARGS: -HC -c -o-
PERMUTE_ARGS:
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

enum class __c_not_special;
extern "C" void fn_long(long _param_0);

extern "C" void fn_ulong(unsigned long _param_0);

extern "C" void fn_longlong(long long _param_0);

extern "C" void fn_ulonglong(unsigned long long _param_0);

extern "C" void fn_long_double(long double _param_0);

extern "C" void fn_wchar_t(wchar_t _param_0);

extern "C" void fn_complex_float(_Complex float _param_0);

extern "C" void fn_complex_double(_Complex double _param_0);

extern "C" void fn_complex_real(_Complex long double _param_0);

extern "C" void fn_not_special(__c_not_special _param_0);

---
+/

enum __c_long : int;
enum __c_ulong : int;
enum __c_longlong : int;
enum __c_ulonglong : int;
enum __c_long_double : int;
enum __c_wchar_t : int;
enum __c_complex_float : int;
enum __c_complex_double : int;
enum __c_complex_real : int;
enum __c_not_special : int;

extern(C) void fn_long(__c_long) {}
extern(C) void fn_ulong(__c_ulong) {}
extern(C) void fn_longlong(__c_longlong) {}
extern(C) void fn_ulonglong(__c_ulonglong) {}

extern(C) void fn_long_double(__c_long_double) {}

extern(C) void fn_wchar_t(__c_wchar_t) {}

extern(C) void fn_complex_float(__c_complex_float) {}
extern(C) void fn_complex_double(__c_complex_double) {}
extern(C) void fn_complex_real(__c_complex_real) {}

extern(C) void fn_not_special(__c_not_special) {}
