WU Yongwei wrote: > Well, I see this in the gcc error message. Can someone here kindly > point to me which part of the Standard specified this behaviour? I > thought it should be in 5.3.4, but was not able to find the words > there.
It might be better if the error message said "non-default initialization" since default initialization is allowed (and required). I assume you are trying something like this: int* i = new int[5](23); A new initializer must have the form (...) (see 5.3.4/1) and the only way that can be used to initialize an array is for default construction. This is OK, and default initialises the array, which default initialises each element (8.5/5) int* i = new int[5](); but this is not OK: int* i = new int[5](23); because it is not valid to initialise an array like this: typedef int (five_ints)[5]; five_ints i(23); this gives: array_init.cc:8: error: cannot initialize arrays using this syntax HTH jon -- sigfault