http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50929

--- Comment #3 from Daniel Krügler <daniel.kruegler at googlemail dot com> 
2011-10-31 08:24:58 UTC ---
(In reply to comment #2)
> That's a shame, and rather annoying. I read pages and pages of the standard to
> try to understand this one. Do you know where this is explained?

Actually this is already required in C++03 (modulo perfect forwarding), see
[class.copy], footnote 106:

"Because a template constructor is never a copy constructor, the presence of
such a template does not suppress the implicit declaration of a copy
constructor. Template constructors participate in overload resolution with
other constructors, including copy constructors, and a template constructor may
be used to copy an object if it provides a better match than other
constructors."

In C++11 this is just part of the general description of initialization
semantics in N3290, [dcl.init] p16.

Reply via email to