operator+, operator==
현재 객체를 바꾸지 않으므로 멤버 함수 끝에 const를 붙이는 쪽이 자연스럽다.
같은 operator 문법이라도 원본을 바꾸는지, 새 값을 만드는지, 실패 없이 이동 가능한지에 따라 const, 반환 타입, noexcept가 달라진다.
현재 객체를 바꾸지 않으므로 멤버 함수 끝에 const를 붙이는 쪽이 자연스럽다.
왼쪽 객체가 바뀌고 연쇄 사용을 위해 보통 자기 자신 참조를 반환한다.
전위는 바뀐 자신을 참조로, 후위는 이전 값을 보존한 복사본으로 돌려준다.
이동 대입이 예외 없이 끝날 수 있으면 noexcept가 컨테이너 최적화에 도움을 준다.
다형성이 필요한 타입을 값으로 받으면 객체 슬라이싱이 생길 수 있으므로, 연산자 인자는 기본적으로 const T&에서 시작해 필요할 때만 바꾼다.