David Sveningsson wrote: > Hi, when I compile the code below with -Weffc++ I get warnings about the > initialization list. > > class Foo { > public: > Foo(): x(0), y(0){ > } > > private: > union { > struct { > float x; > float y; > }; > float v[2]; > }; > }; > > initialization.cpp: In constructor ‘Foo::Foo()’: > initialization.cpp:3: warning: ‘Foo::<anonymous>’ should be initialized > in the member initialization list > initialization.cpp:3: warning: ‘Foo::<anonymous union>::<anonymous>’ > should be initialized in the member initialization list > > I don't think this warning is correct as all memory has been initalized > correctly. I don't think so. We know that v is at the same address as x, but v[1] may not be at the same address as y. However, I see your point: there doesn't seem to be any way to make -Weffc++ work with this. Andrew.