http://coliru.stacked-crooked.com/a/8356f09dff0c9308
#include
struct A
{
A(int& var) : r(var) {}
int &r;
};
int main(int argc,
Assignment and construction are two different beasts.
The default assignment operator cannot exist because references cannot be assigned to (if you try in "user-land" code, you will actually be assigning to the referant).
The default copy constructor has no such problem, since we can create references just fine.