I have a simple struct Wrapper
, distinguished by two templated assignment operator overloads:
template
struct Wrapper {
Wra
From the C++03 standard, §12.8/9:
A user-declared copy assignment operator
X::operator=
is a non-static non-template member function of classX
with exactly one parameter of typeX
,X&
,const X&
,volatile X&
orconst volatile X&
.
And §12.8/10:
If the class definition does not explicitly declare a copy assignment operator, one is declared implicitly.
The fact that your operator=
is a template makes it not a copy assignment operator, so the class' implicit copy assignment operator is still generated by the compiler.