On Wednesday, 20 September 2023 at 13:53:08 UTC, Ki Rill wrote:
Here is the macro:
```C
#define NK_CONTAINER_OF(ptr,type,member)\
(type*)((void*)((char*)(1 ? (ptr): &((type*)0)->member) -
NK_OFFSETOF(type, member)))
```
I'm trying to translate the Nuklear GUI library to D
[here](https://github.com/rillki/nuklear-d/tree/nuklear-d-translation).
My workflow when trying to port weird C code to D is to have a
small C file, put an example code, and then run the preprocessor,
and try to get how things are expanded
Alternatively, latest version of visual studio allows you to see
that in real time, you'll still have to write example code tho
https://devblogs.microsoft.com/cppblog/visualize-macro-expansion-for-c/