https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98485
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- I thought the C++ rule was all specializations has to be seen when you use one or the other. Otherwise this becomes an ODR issue and therefor invalid code (not have to be diagnostic at compile time).