need a virtual template member workaround
Posted
by yurib
on Stack Overflow
See other posts from Stack Overflow
or by yurib
Published on 2010-05-30T18:46:43Z
Indexed on
2010/05/30
18:52 UTC
Read the original article
Hit count: 168
Hello,
I need to write a program implementing the visitor design pattern. The problem is that the base visitor class is a template class. This means that BaseVisited::accept() takes a template class as a parameter and since it uses 'this' and i need 'this' to point to the correct runtime instance of the object, it also needs to be virtual.
I'd like to know if there's any way around this problem.
template <typename T>
class BaseVisitor {
public:
BaseVisitor();
T visit(BaseVisited *visited);
virtual ~BaseVisitor();
}
class BaseVisited {
BaseVisited();
template <typename T>
virtual void accept(BaseVisitor<T> *visitor) { visitor->visit(this); }; // problem
virtual ~BaseVisited();
}
© Stack Overflow or respective owner