Lumiera  0.pre.03
»edit your freedom«
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 107 of file visitor.hpp.

Public Types

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

Public Member Functions

virtual Tag< ToolBasegetTag ()=0
 use RTTI for all visiting tools More...
 

Member Function Documentation

◆ getTag()

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: