멤버 함수로 선언 된 오버로드 된 연산자는 하나의 매개 변수 만 가질 수 있고 자동으로 전달되는 다른 매개 변수는 포인터 이기 때문에 비대칭 이라는 것을 읽었습니다 this
. 따라서 이들을 비교할 기준이 없습니다. 반면 a friend
로 선언 된 오버로드 된 연산자는 동일한 유형의 두 인수를 전달하므로 비교할 수 있기 때문에 대칭 입니다.
내 질문은 포인터의 lvalue를 참조와 비교할 수 있는데 왜 친구가 선호됩니까? (비대칭 버전을 사용하면 대칭과 동일한 결과가 나타납니다.) STL 알고리즘이 대칭 버전 만 사용하는 이유는 무엇입니까?