--- Additional Comments From acehreli at yahoo dot com 2004-10-16 22:57 ---
I don't think the paragraphs from the standard that are mentioned above are
completely relevant. There isn't an opportunity for optimization in this case.
This is aggregate initialization.
I found the following paragraphs to be describing this case exactly:
8.5.1/1
8.5.1/13
12.6.1/2
The first example under 12.6.1/2 is directly relevant:
[Example:
complex v[6] = { 1,complex(1,2),complex(),2 };
Here, complex::complex(double) is called for the initialization of v[0] and v
[3], complex::complex(double,double) is called for the initialization of v[1],
complex::complex() is called for the initialization v[2], v[4], and v[5].
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15172