boost::operators
은 +=
과 같은 수동 구현을 기반으로하는 +
과 같은 연산자를 자동으로 정의하므로 매우 유용합니다. 부스트 예에서와 같이 T
에 대한 그 사업자를 생성하려면, 하나는 boost::operators<T>
에서 상속 :부스트 오퍼레이터는 어떻게 작동합니까?
class MyInt : boost::operators<MyInt>
나는 CRTP 패턴을 잘 알고,하지만 나는 여기서 일하는 방식을 볼 수 실패합니다. 특히, 운영자가 회원이 아니기 때문에 나는 어떤 시설도 상속받지 못하고 있습니다. boost::operators
은 완전히 비어있는 것처럼 보입니다. 그러나 나는 부스트 소스 코드를 읽는 것이 좋지 않습니다.
누구나 자세히 설명 할 수 있습니까? 이 메커니즘이 잘 알려져 널리 사용되고 있습니까?
정말로 재미있는 것은 당신이 클래스에서 개인적으로 상속하고 아직 작동합니다. 그것은 정말 재밌 트릭 :) –
그것은 이름이있다 : [바튼 - Nackman 트릭] (http://en.wikipedia.org/wiki/Barton-Nackman_trick). –