https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53119
--- Comment #14 from Rich Felker <bugdal at aerifal dot cx> --- In C++, the correct zero initializer is {}, not {0}. I'm not an expert in C++ but I think {0} in C++ might even be a constraint violation unless the brace level happens to match.