On Thursday, 21 September 2023 at 02:23:32 UTC, Ki Rill wrote:
wrote:
[...]
Translated it to this eventually:
```D
auto nk_container_of(P, T)(P ptr, T type, const(char)* member)
{
return cast(T*)(cast(void*)(cast(char*)
(ptr - __traits(getMember, type, member).offsetof)));
}
```
On Wednesday, 20 September 2023 at 17:14:41 UTC, Dejan Lekic
wrote:
[...]
NK_CONTAINER_OF should probably be translated to:
`cast(T*)((cast(void*)ptr - __traits(getMember, T,
member).offsetof))`
PS. I did not invent this. My original idea was far worse than
this. - It was suggested on IRC b
On Wednesday, 20 September 2023 at 13:55:14 UTC, Ki Rill wrote:
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
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://
On Wednesday, 20 September 2023 at 13:55:14 UTC, Ki Rill wrote:
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
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://
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).