Operador de atribuição - Auto-atribuição

O operador de atribuição gerado pelo compilador se protege contra a atribuição automática?

class T {

   int x;
public:
   T(int X = 0): x(X) {}
};

int main()
{
   T a(1);
   a = a;
}

Preciso sempre me proteger contra a atribuição automática, mesmo quando os alunos não são do tipo ponteir

questionAnswers(3)

yourAnswerToTheQuestion