initializer list like in C++?

James Dennett jdennett at acm.org
Tue Jul 24 11:55:31 PDT 2007


Jarrett Billingsley wrote:
> "Hoenir" <mrmocool at gmx.de> wrote in message 
> news:f84rnt$1db0$1 at digitalmars.com...
>> Is there anything like the initializer list (C++) in D?
>>
>> class Test {
>> int x;
>> Test(int y):x(y){};
>> }
> 
> No.  See 
> http://www.digitalmars.com/d/archives/digitalmars/D/initialization_lists_55262.html 
> for an explanation on why D doesn't have them. 

I looked at that thread, but found only references to
performance, which miss the main reason why these are
present/useful in C++: semantics.  There are various
kinds of things in C++ that can be initialized but cannot
be modified, because of references, const-ness, and
classes with immutable value semantics.

The occasional/slight performance benefit is definitely
secondary to the ability to express meaning directly in
the code.

As D gains the ability to model such immutable members,
it might benefit from finding (its own) solution to the
same issue.

-- James


More information about the Digitalmars-d-learn mailing list