![]() |
Lumiera 0.pre.04~rc.1
»edit your freedom«
|
While laying the foundations for Session and Builder, Ichthyo came across the necessity to create a custom implementation of the Visitor Pattern optimally suited for Lumiera's needs. More...
Go to the source code of this file.
While laying the foundations for Session and Builder, Ichthyo came across the necessity to create a custom implementation of the Visitor Pattern optimally suited for Lumiera's needs.
This implementation file was used for the drafting process and is self-contained. The final solution was then extracted later as library implementation into visitor.hpp
Definition in file visitingtool-concept.cpp.
#include "lib/test/run.hpp"#include "lib/format-cout.hpp"#include "lib/format-string.hpp"#include "lib/depend.hpp"#include <vector>Namespaces | |
| namespace | lumiera |
| Lumiera public interface. | |
| namespace | lumiera::visitor_concept_draft |
| namespace | lumiera::visitor_concept_draft::test |
Macros | |
| #define | DEFINE_PROCESSABLE_BY(TOOL) |
| mark a Visitable subclass as actually treatable by some "visiting tool". | |
Typedefs | |
| using | VisitingTool = Tool< void > |
Classes | |
| struct | TagTypeRegistry< TOOL, TOOLImpl > |
| class | Tag< TOOL > |
| class | Tool< RET > |
| Marker interface "visiting tool". More... | |
| class | ToolType< TOOLImpl, BASE > |
| Mixin for attaching a type tag to the concrete tool implementation. More... | |
| class | Dispatcher< TAR, TOOL > |
| For each possible call entry point via some subclass of the visitable hierarchy, we maintain a dispatcher table to keep track of all concrete tool implementations able to receive and process calls on objects of this subclass. More... | |
| class | Applicable< TAR, TOOLImpl, BASE > |
| any concrete visiting tool implementation has to inherit from this class for each kind of calls it wants to get dispatched, Allowing us to record the type information. More... | |
| class | Visitable< TOOL > |
| Marker interface "visitable object". More... | |
| class | HomoSapiens |
| class | Boss |
| class | BigBoss |
| class | Leader |
| class | Visionary |
| class | VerboseVisitor |
| class | Babbler |
| class | VisitingTool_concept |
Functions | |
| LAUNCHER (VisitingTool_concept, "unit common") | |
| Register this test class... | |
| #define DEFINE_PROCESSABLE_BY | ( | TOOL | ) |
mark a Visitable subclass as actually treatable by some "visiting tool".
Defines the apply-function, which is the actual access point to invoke the visiting
Definition at line 317 of file visitingtool-concept.cpp.