Lumiera 0.pre.04~rc.1
»edit your freedom«
Loading...
Searching...
No Matches
Tool< RET, ERR > Class Template Referenceabstract

#include "lib/visitor.hpp"

Description

template<typename RET = void, template< class > class ERR = UseDefault>
class lib::visitor::Tool< RET, ERR >

Marker interface / base class for all "visiting tools".

When applying such a tool to some concrete instance derived from Visitable, a special function treating this concrete subclass will be selected on the concrete visiting tool instance.

Definition at line 98 of file visitor.hpp.

Public Types

using ReturnType = RET
 Tool function invocation return type.
 
using ToolBase = Tool
 for templating the Tag and Dispatcher
 

Public Member Functions

virtual ~Tool ()
 
virtual Tag< ToolBasegetTag ()=0
 use RTTI for all visiting tools
 

Constructor & Destructor Documentation

◆ ~Tool()

template<typename RET = void, template< class > class ERR = UseDefault>
virtual ~Tool ( )
inlinevirtual

Definition at line 104 of file visitor.hpp.

Member Typedef Documentation

◆ ReturnType

template<typename RET = void, template< class > class ERR = UseDefault>
using ReturnType = RET

Tool function invocation return type.

Definition at line 101 of file visitor.hpp.

◆ ToolBase

template<typename RET = void, template< class > class ERR = UseDefault>
using ToolBase = Tool

for templating the Tag and Dispatcher

Definition at line 102 of file visitor.hpp.

Member Function Documentation

◆ getTag()

template<typename RET = void, template< class > class ERR = UseDefault>
virtual Tag< ToolBase > getTag ( )
pure virtual

use RTTI for all visiting tools

allows discovery of the concrete Tool type when dispatching a visitor call. Can be implemented by inheriting from ToolTag

+ Inheritance diagram for Tool< RET, ERR >:
+ Collaboration diagram for Tool< RET, ERR >:

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