bug in GCC or C++ standard ?

Mark Tall mtall.qld@gmail.com
Wed Nov 12 04:05:00 GMT 2008


On 12/11/2008, James Dennett <james.dennett@gmail.com> wrote:
> In a union only one field can be active at one time, hence
> initializing more than one makes no sense
> ...
> However, const items need to be initialized, hence potting two in a
> union makes no sense.

Conceptually there is nothing wrong with having two or more const
members in a union.  The compiler (or standard) should recognise this
particular case, and interpret that initialising one member of a union
is equivalent to initialising all the members, be they const or not.

> (The standard doesn't need an explicit rule to say that, as it's
> implied by other rules.)

I'm not sure I agree with the standard.  The two requirements, i.e.
(i) need to initialise all consts, and (ii) only one member of a union
can be initialised, are at conflict with each other. Requirement (ii)
fullfills requirement (i), so the compiler shouldn't be complaining
about uninitialised consts.



More information about the Gcc mailing list