Защищает ли сгенерированный компилятором оператор присваивания от самоназначения?
class T {
int x;
public:
T(int X = 0): x(X) {}
};
int main()
{
T a(1);
a = a;
}
Всегда ли мне нужно защищаться от самоназначения, даже если члены класса не относятся к типу указателя?