Well, the standard says:
It is possible to add a contructor to make Y assignable to X (in which case the constructor would do the hard work).Quote:
13.5.3 Assignment
An assignment operator shall be implemented by a non-static member function with exactly one parameter.
Code:struct Y {};
struct X
{
X() {}
X(const Y&) {}
};
int main()
{
X x;
Y y;
x = y;
}