Lumiera  0.pre.03
»edit your freedom«
UndoSignature< SIG > Class Template Reference

#include "steam/control/command-signature.hpp"

Description

template<typename SIG>
class steam::control::UndoSignature< SIG >

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
 

Class Documentation

◆ steam::control::UndoSignature::Case

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
+ Collaboration diagram for UndoSignature< SIG >::Case< RET, ARG >:

◆ steam::control::UndoSignature::Case< void, ARG >

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
+ Collaboration diagram for UndoSignature< SIG >::Case< void, ARG >:
+ Collaboration diagram for UndoSignature< SIG >:

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