summaryrefslogtreecommitdiff
path: root/qpid/cpp/src/qpid/amqp_0_10/visitors.h
blob: 3835f37f3e29cc16685d0850631e74a3237839b7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// Visitors
template <class Base> struct Visitor;
template <class Base, class F, class R> FunctorVisitor;

/** Template base implementation for visitables. */
template <class Base, class Derived>
struct VisitableBase : public Base {
    virtual void accept(Visitor<Derived>& v) {
        v.visit(static_cast<Derived>&(*this));
    }
    virtual void accept(Visitor<Derived>& v) const {
        v.visit(static_cast<const Derived>&(*this));
    }
};