https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71002
--- Comment #4 from rguenther at suse dot de <rguenther at suse dot de> --- On Mon, 9 May 2016, tavianator at gmail dot com wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71002 > > --- Comment #3 from Tavian Barnes <tavianator at gmail dot com> --- > Because their long_t is not POD. I don't know why that is though. It could > be > POD if they removed the default/copy constructors and assignment operator. > > Actually they're probably worried about custom allocators where the pointer > type is not POD. So it couldn't be POD in general, and thus can't appear in a > union directly (in C++03). But if it is not POD then assuming it gets copied correctly when init-constructing a POD union where they placed such object is an interesting assumption...