http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47436
--- Comment #4 from Johannes Schaub <schaub.johannes at googlemail dot com> 2011-09-22 19:01:51 UTC --- (In reply to comment #3) > (In reply to comment #2) > > Suggestions about a better error message? (should be easy to change) > > What about: > > "error: every valid template specialization requires an empty template > parameter pack" > > ? I don't know how much local information is available, if there is more > available, so following would be better: > > "error: every valid specialization of template A requires an empty template > parameter pack T" Hmm, this is very technical though. When the user wrote that code, most probably they either don't want an union, but a class/struct, or they don't want to derive from something. For the tiny fraction of users that *do* want to write that exact code, they most probably expect it to be valid because they most probably think that if T is empty, it will expand to nothing. With the proposed wording of the diagnostics, in both cases the diagnostic is suboptimal