Lumiera  0.pre.03
»edit your freedom«
Applicable< TOOLImpl, TYPES, BASE > Class Template Reference

#include "lib/visitor.hpp"

Description

template<class TOOLImpl, class TYPES, class BASE = Tool<>>
class lib::visitor::Applicable< TOOLImpl, TYPES, BASE >

Marker template to declare that some "visiting tool" wants to treat a set of concrete Visitable classes.

Each "first class" concrete visiting tool implementation has to inherit from an instance of this template parametrised with the desired types; for each of the mentioned types, calls will be dispatched to the tool implementation. (To make it clear: Calls to all other types not marked by such an "Applicable" won't ever be dispatched to this tool class.). A Sideeffect of inheriting from such an "Applicable" is that the tool gets an unique Tag entry, which is used internally as index in the dispatcher tables. And the automatic ctor call allows us to record the type information and pre-register the dispatcher entry.

Definition at line 135 of file visitor.hpp.

+ Inheritance diagram for Applicable< TOOLImpl, TYPES, BASE >:
+ Collaboration diagram for Applicable< TOOLImpl, TYPES, BASE >:

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