initializer list like in C++?

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

Jarrett Billingsley wrote:
> "Hoenir" <mrmocool at> wrote in message 
> news:f84rnt$1db0$1 at
>> Is there anything like the initializer list (C++) in D?
>> class Test {
>> int x;
>> Test(int y):x(y){};
>> }
> No.  See 
> 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