Pas de véritable raison.
C++ est le résultat d'un comité d'efforts, donc parfois étrange mais la décision délibérée peut passer à travers en raison de la complexité politique et sociologique de la dynamique.
Syntaxe C++ est dur. Très dur. Presque incroyablement dur. Il y a des règles vont même comme "si vous pouvez analyser cette arbitrairement longue séquence de jetons à la fois comme ceci ou cela, alors il est présent".
Il a fallu de nombreuses années pour les compilateurs même simplement d'accord sur ce qu'est le C++, et ce qui ne l'est pas.
Dans ce cas, mon sauvage imagine qu'ils n'aimaient pas l'idée que les cas qui paraissent très semblables:
MyClass x = {...};
MyClass y; y = {...};
seraient traités différemment donc il y a une disposition spéciale pour l'affectation à permettre à la syntaxe.
À partir d'un point de vue technique, je ne vois pas quels sont les problèmes que de le laisser à d'autres opérateurs, et d'autre part, si il y a des problèmes (par exemple pour la surcharge, l'instanciation d'un modèle etc.) Je ne vois pas comment la cession de l'espoir de leur échapper.
MODIFIER
g++ permet d'utiliser non seulement le strict operator=
mais aussi operator+=
, operator-=
et similaires "augmentée" d'assignation. Peut-être les problèmes de logique qui se produit uniquement si vous permettre aux non-membres de surcharges (qui sont interdites pour l'affectation et augmentée de l'affectation des opérateurs).