On Fri, Aug 19, 2005 at 09:19:55AM +0100, Jonathan Wakely wrote:
> 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);
While this is not gcc-help, maybe we could make a FAQ item for this.
For people who want to do something like this, I suggest
std::vector<int> i(5, 23);
If the reason vector wasn't used in the first place was because some
API needs an array, then use
std::vector<int> vector_i(5, 23);
int* i = &*vector.begin();
The reason for the &* is to convert the vector iterator into a
pointer to the first element.