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< TList, R >
 Implements non-strict visitation (you can implement only part of the Visit functions) More...
 
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>