Feel++  0.91.4
Classes | Namespaces | Macros
visitor.hpp File Reference
#include <boost/mpl/assert.hpp>
#include <boost/mpl/list.hpp>
#include <boost/mpl/front.hpp>
#include <boost/mpl/pop_front.hpp>
#include <feel/feelcore/feel.hpp>

Classes

class  Feel::VisitorBase
 The base class of any Acyclic Visitor. More...
class  Feel::Visitor< T, R >
class  Feel::VisitorList< TList, R >
class  Feel::VisitorBaseImpl< mpl::list< Head, Tail >, R >
class  Feel::VisitorBaseImpl< mpl::list< Head >, R >
class  Feel::VisitableCatchAllDefault< R, Visited >
class  Feel::VisitableBase< R, CatchAll >
class  Feel::VisitorCyclic< R, TList >

Namespaces

namespace  Feel

Macros

#define FEELPP_DEFINE_VISITABLE()
#define FEELPP__DEFINE_CYCLIC_VISITABLE(SomeVisitor)

Detailed Description

Author:
Christophe Prud'homme chris.nosp@m.toph.nosp@m.e.pru.nosp@m.dhom.nosp@m.me@uj.nosp@m.f-gr.nosp@m.enobl.nosp@m.e.fr
Date:
2005-03-21

Macro Definition Documentation

#define FEELPP__DEFINE_CYCLIC_VISITABLE (   SomeVisitor)
Value:
virtual SomeVisitor::return_type Accept(SomeVisitor& guest) \
{ \
return guest.genericVisit(*this); \
} \
virtual SomeVisitor::return_type Accept(SomeVisitor* guest) \
{ \
return guest->genericVisit(*this); \
}
#define FEELPP_DEFINE_VISITABLE ( )
Value:
virtual return_type accept( VisitorBase& guest ) \
{ \
return this->acceptImpl( this, &guest ); \
} \
virtual return_type accept( VisitorBase* guest ) \
{ \
return this->acceptImpl( this, guest ); \
}

Put it in every class that you want to make visitable (in addition to deriving it from VisitableBase<R>