C++ vs D aggregates

Dejan Lekic dejan.lekic at gmail.com
Sat Dec 3 11:14:52 PST 2011


I recently stumbled on this thread: http://stackoverflow.com/
questions/5666321/what-is-assignment-via-curly-braces-called-and-can-it-
be-controlled

The important part is this:

-------- 8< --------- begin ---------
The Standard says in section §8.5.1/1,

An aggregate is an array or a class (clause 9) with no user-declared 
constructors (12.1), no private or protected non-static data members 
(clause 11), no base classes (clause 10), and no virtual functions (10.3).

And then it says in §8.5.1/2 that,

When an aggregate is initialized the initializer can contain an 
initializer-clause consisting of a brace-enclosed, comma-separated list 
of initializer-clauses for the members of the aggregate, written in 
increasing subscript or member order. If the aggregate contains 
subaggregates, this rule applies recursively to the members of the 
subaggregate.
-------- >8 --------- end ---------

Do D2 aggregates behave the same, or are there notable differences?


More information about the Digitalmars-d-learn mailing list