2 가지 유형의 기본 및 유도 및 부스트 : 변형이 있습니다. 나는 타입 2는이 자료와 빈에 정의 된 가정에 대한 연산자를 대체하지 않습니다부스트 변형 및 방문자
struct Derived : public Base
{
void operator(Type1& t) { /*some impl*/ }
};
:로
struct Base : public boost::static_visitor<>
{
virtual void operator(Type1& t) {}
virtual void operator(Type2& t) {}
};
는 내가하고 싶은 파생 정의합니까이다. 내가
Derived visitor;
boost::apply_visitor(visitor, variant);
를 작성하는 경우 어떤 이유
나는 오류 : 없음 일치 '(파생) (타입 2 &)'물론에 호출 난에 타입 2에 대한 연산자를 추가하는 경우 파생 된 그것은 괜찮습니다.
아무도 Type2에 대한 연산자를 추가하지 않고 작동하지 않는 이유를 이해할 수 있도록 도와주세요.
'가상 void 연산자 (타입 1 & t) {}'올바른 구문이 아닙니다. 실제로 무엇을 썼습니까? – cpplearner