Anything like C99 compound literals in D?

John Burton john.burton at jbmail.com
Fri Feb 9 12:14:52 UTC 2018


This is just an example...

In windows WNDCLASS is a struct and RegisterClass is a function 
that takes a pointer to an instance of that class.

In C99 I can use "compound literals" to write this and have it 
construct an instance of that struct on the stack, set the values 
I've initialized, and default the rest of the struct members to 
zero. (There are many other members I just want to set to zero)

RegisterClass(&(WNDCLASS) {
     .hInstance = GetModuleHandle(NULL),
     .lpszClassName = "Hello",
     .lpfnWndProc = DefWindowProc
});

I find this very handy in my own code too. The syntax is very 
nice.
Is there any similar feature in D? (or a clean way to do this 
kind of thing)



More information about the Digitalmars-d mailing list