Lumiera
0.pre.03
»edit your freedom«
|
#include "steam/control/command-signature.hpp"
Type analysis helper template.
Used for dissecting a given type signature to derive the related basic operation signature, the signature of a possible Undo-function and the signature necessary for capturing undo information. The implementation relies on re-binding an embedded type defining template, based on the actual case, as identified by the structure of the given parameter signature.
To use this template, it is instantiated with the signature of a functor object in question. Depending on the actual situation, the compiler will then either pick Case1 or Case2 – thus allowing the client in any case to pick up the correct signatures for Operation, Capture and Undo-function from the public typedefs within UndoSignature
Definition at line 108 of file command-signature.hpp.
Public Types | |
using | CaptureSig = typename Case< Ret, Args >::CaptureSig |
using | Memento = typename Case< Ret, Args >::Memento |
using | OperateSig = typename Case< Ret, Args >::OperateSig |
using | UndoOp_Sig = typename Case< Ret, Args >::UndoOp_Sig |
Classes | |
struct | Case |
Case1: defining the Undo-Capture function. More... | |
struct | Case< void, ARG > |
Case2: defining the actual Undo function. More... | |
Private Types | |
using | Args = typename _Fun< SIG >::Args |
using | Ret = typename _Fun< SIG >::Ret |
struct steam::control::UndoSignature::Case |
Class Members | ||
---|---|---|
typedef RET | Memento | |
typedef typename Append< ARG, Memento >::List |
ExtendedArglist | |
typedef typename Types < ExtendedArglist >::Seq |
ExtendedArgs | |
typedef typename BuildFunType < void, ARG >::Sig |
OperateSig | |
typedef typename BuildFunType < Ret, ARG >::Sig |
CaptureSig | |
typedef typename BuildFunType < void, ExtendedArgs >::Sig |
UndoOp_Sig |
struct steam::control::UndoSignature::Case< void, ARG > |
Class Members | ||
---|---|---|
typedef typename List | Args | |
typedef typename SplitLast < Args >::Type |
Memento | |
typedef typename SplitLast < Args >::List |
OperationArglist | |
typedef typename Types < OperationArglist >::Seq |
OperationArgs | |
typedef typename BuildFunType < void, OperationArgs >::Sig |
OperateSig | |
typedef typename BuildFunType < Ret, OperationArgs >::Sig |
CaptureSig | |
typedef typename BuildFunType < void, ARG >::Sig |
UndoOp_Sig |