http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49470
Jonathan Wakely <redi at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |diagnostic
Severity|normal |enhancement
--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> 2011-06-20
10:26:56 UTC ---
The summary isn't very relevant, the problem has nothing to do with
constructors, it's just that g++ doesn't check before instantiation whether no
valid specialization can be formed for a template.
14.6 [temp.res] p7:
If no valid specialization can be generated for a template definition, and that
template is not instantiated, the template definition is ill-formed, no
diagnostic required. ... [ Note: If a template is instantiated, errors will be
diagnosed according to the other rules in this Standard. Exactly when these
errors are diagnosed is a quality of implementation issue. —end note ]