BaseKind - GerdHirsch/Cpp-VisitorFrameworkCyclicAcyclic GitHub Wiki
There are two classes declared in namespace BaseKind
:
Default
and Abstract
.
They are used to select special implementations of visitor base classes in your
Repository
and can be seen
as abstract properties you want your visitors to have.
namespace BaseKind{
class Default;
class Abstract;
}
With BaseKind::Default
, a default method for visit(..)
is generated which uses
the specified
DefaultPolicy
.
This is useful if you want to extend the list of
types to be visited without changing all Visitors!
With BaseKind::Abstract
, the visit methods will be pure virtual functions:
void visit(Elementtype&) = 0;
and therefore, your Visitor classes will be abstract classes if they don't provide a visit method
for all element types in the base class list visits<typelist>
.