Compiling the following code with D defined works. Leave it out (and remove the extra dimension which has no influence on the data layout etc) and it compiles. Is this correct? Why wouldn't a simple use of an array parameter be sufficient?
#ifdef D #define XD [1] #define XR [0] #define XBB { #define XBE } #else #define XD #define XR #define XBB #define XBE #endif int aa XD[10] = { XBB 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 XBE }; int f(int arr XD[10]) { int s = 0; for (auto i : arr XR) s += i; return s; } int main() { return f(aa); }