Can we drop static struct initializers?

KennyTM~ kennytm at gmail.com
Fri Nov 20 11:08:15 PST 2009


On Nov 21, 09 00:15, Andrei Alexandrescu wrote:
> Walter Bright wrote:
>> Don wrote:
>>> Now that we have struct literals, the old C-style struct initializers
>>> don't seem to be necessary.
>>> The variations with named initializers are not really implemented --
>>> the example in the spec doesn't work, and most uses of them cause
>>> compiler segfaults or wrong code generation. EG...
>>>
>>> struct Move{
>>> int D;
>>> }
>>> enum Move genMove = { D:4 };
>>> immutable Move b = genMove;
>>>
>>> It's not difficult to fix these compiler problems, but I'm just not
>>> sure if it's worth implementing. Maybe they should just be dropped?
>>> (The { field: value } style anyway).
>>>
>>>
>>
>> Funny, I've been thinking the same thing. Those initializers are
>> pretty much obsolete, the only thing left is the field name thing. To
>> keep the field name thing with the newer struct literals would require
>> named function parameters as well, something doable but I'm not ready
>> to do all the work to implement that yet.
>>
>> Or just drop the field name thing, as you suggest.
>
> Would love to trim the book as well. My finger is on the Del button.
> Just say a word.
>
> Andrei

Maybe C-style function pointer types (i.e. void(*f)(void*))? ;)



More information about the Digitalmars-d mailing list