Lumiera 0.pre.04~rc.1
»edit your freedom«
Loading...
Searching...
No Matches
Visitable< TOOL > Class Template Referenceabstract

Description

template<class TOOL = Tool<void>>
class lumiera::visitor_concept_draft::Visitable< TOOL >

Marker interface "visitable object".

Definition at line 285 of file visitingtool-concept.cpp.

Public Member Functions

virtual ReturnType apply (TOOL &)=0
 to be defined by the DEFINE_PROCESSABLE_BY macro in all classes wanting to be treated by some tool
 

Protected Types

using ToolBase = TOOL::ToolBase
 
using ReturnType = TOOL::ReturnType
 

Protected Member Functions

virtual ~Visitable ()
 

Static Protected Member Functions

template<class TAR >
static ReturnType dispatchOp (TAR &target, TOOL &tool)
 

Constructor & Destructor Documentation

◆ ~Visitable()

template<class TOOL = Tool<void>>
virtual ~Visitable ( )
inlineprotectedvirtual

Definition at line 288 of file visitingtool-concept.cpp.

Member Typedef Documentation

◆ ToolBase

template<class TOOL = Tool<void>>
using ToolBase = TOOL::ToolBase
protected
Note
may differ from TOOL

Definition at line 291 of file visitingtool-concept.cpp.

◆ ReturnType

template<class TOOL = Tool<void>>
using ReturnType = TOOL::ReturnType
protected

Definition at line 292 of file visitingtool-concept.cpp.

Member Function Documentation

◆ dispatchOp()

template<class TOOL = Tool<void>>
template<class TAR >
static ReturnType dispatchOp ( TAR &  target,
TOOL &  tool 
)
inlinestaticprotected

used by the DEFINE_PROCESSABLE_BY macro. Dispatches to the actual operation on the "visiting tool" (visitor implementation) Note: creates a context templated on concrete TAR.

Definition at line 301 of file visitingtool-concept.cpp.

References Dispatcher< TAR, TOOL >::instance.

◆ apply()

template<class TOOL = Tool<void>>
virtual ReturnType apply ( TOOL &  )
pure virtual

to be defined by the DEFINE_PROCESSABLE_BY macro in all classes wanting to be treated by some tool

Referenced by VisitingTool_concept::known_visitor_known_class(), and VisitingTool_concept::visitor_not_visiting_some_class().

+ Here is the caller graph for this function:
+ Inheritance diagram for Visitable< TOOL >:
+ Collaboration diagram for Visitable< TOOL >:

The documentation for this class was generated from the following file: