J'ai lu qu'un opérateur surchargé déclaré comme fonction membre est asymétrique car il ne peut avoir qu'un seul paramètre et l'autre paramètre passé automatiquement est le this
pointeur. Il n'existe donc aucune norme pour les comparer. D'autre part, l'opérateur surchargé déclaré comme a friend
est symétrique car nous passons deux arguments du même type et par conséquent, ils peuvent être comparés.
Ma question est la suivante: lorsque je peux encore comparer la valeur d'un pointeur à une référence, pourquoi les amis sont-ils préférés? (l'utilisation d'une version asymétrique donne les mêmes résultats qu'une version symétrique) Pourquoi les algorithmes STL n'utilisent-ils que des versions symétriques?