Anything like C99 compound literals in D?

Nicholas Wilson iamthewilsonator at hotmail.com
Fri Feb 9 12:17:55 UTC 2018


On Friday, 9 February 2018 at 12:14:52 UTC, John Burton wrote:
> 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)

[This should be posted to the learn forums].



More information about the Digitalmars-d mailing list