![]() |
Lumiera 0.pre.04~rc.1
»edit your freedom«
|
Metaprogramming helpers for deriving the precise function signatures necessary to implement a given command. More...
Go to the source code of this file.
Metaprogramming helpers for deriving the precise function signatures necessary to implement a given command.
Basically, commands can be implemented by arbitrary functions, but the signatures of the operation function, the undo function and the undo state capturing function are required to obey fixed relationships. Thus, at various stages of the command definition, we need to accept functor objects with a very specific and predetermined signature, thus allowing for strict type checking by the compiler.
Definition in file command-signature.hpp.
#include "lib/meta/function.hpp"#include "lib/meta/typelist.hpp"#include "lib/meta/typelist-manip.hpp"#include "lib/meta/typeseq-util.hpp"#include <functional>Namespaces | |
| namespace | lumiera |
| Lumiera public interface. | |
| namespace | lumiera::error |
| namespace | steam |
| Steam-Layer implementation namespace root. | |
| namespace | steam::control |
| Steam-Layer dispatcher, controller and administrative facilities. | |
Classes | |
| class | CommandSignature< SIG, MEM > |
| Metaprogramming helper for building Command function signatures. More... | |
| class | UndoSignature< SIG > |
| Type analysis helper template. More... | |
| struct | UndoSignature< SIG >::Case< RET, ARG > |
| Case1: defining the Undo-Capture function. More... | |
| struct | UndoSignature< SIG >::Case< void, ARG > |
| Case2: defining the actual Undo function. More... | |
Functions | |
| LUMIERA_ERROR_DECLARE (UNBOUND_ARGUMENTS) | |
| Command functor not yet usable, because arguments aren't bound. | |
| LUMIERA_ERROR_DECLARE (MISSING_MEMENTO) | |
| Undo functor not yet usable, because no undo state has been captured. | |
| struct steam::control::UndoSignature::Case |
| struct steam::control::UndoSignature::Case< void, ARG > |