Lumiera 0.pre.04
»edit your freedom«
Loading...
Searching...
No Matches
command-signature.hpp
Go to the documentation of this file.
1/*
2 COMMAND-SIGNATURE.hpp - deriving suitable command function signatures
3
4 Copyright (C)
5 2009, Hermann Vosseler <Ichthyostega@web.de>
6
7  **Lumiera** is free software; you can redistribute it and/or modify it
8  under the terms of the GNU General Public License as published by the
9  Free Software Foundation; either version 2 of the License, or (at your
10  option) any later version. See the file COPYING for further details.
11
12*/
13
14
37#ifndef CONTROL_COMMAND_SIGNATURE_H
38#define CONTROL_COMMAND_SIGNATURE_H
39
40#include "lib/meta/function.hpp"
41#include "lib/meta/typelist.hpp"
44
45#include <functional>
46
47
48
49namespace lumiera {
50namespace error {
51 LUMIERA_ERROR_DECLARE (UNBOUND_ARGUMENTS);
52 LUMIERA_ERROR_DECLARE (MISSING_MEMENTO);
53}}
54
55namespace steam {
56namespace control {
57
58 using std::function;
59
61 using lib::meta::_Fun;
62 using lib::meta::Types;
65
66
74 template<typename SIG, typename MEM>
89
90
91
92
107 template<typename SIG>
148
149
150
151}} // namespace steam::control
152#endif
Metaprogramming helper for building Command function signatures.
BuildFunType< void, ExtendedArgs >::Sig UndoOp_Sig
BuildFunType< MEM, Args >::Sig CaptureSig
Append< ArgList, MEM >::List ExtendedArglist
Types< ExtendedArglist >::Seq ExtendedArgs
BuildFunType< void, Args >::Sig OperateSig
Type analysis helper template.
Append< ARG, Memento >::List ExtendedArglist
BuildFunType< void, OperationArgs >::Sig OperateSig
BuildFunType< void, ExtendedArgs >::Sig UndoOp_Sig
Case< Ret, Args >::OperateSig OperateSig
BuildFunType< void, ARG >::Sig OperateSig
Case< Ret, Args >::CaptureSig CaptureSig
BuildFunType< Ret, ARG >::Sig CaptureSig
Case< Ret, Args >::Memento Memento
BuildFunType< Ret, OperationArgs >::Sig CaptureSig
Types< ExtendedArglist >::Seq ExtendedArgs
Case< Ret, Args >::UndoOp_Sig UndoOp_Sig
Case1: defining the Undo-Capture function.
#define LUMIERA_ERROR_DECLARE(err)
Forward declare an error constant.
Definition error.h:62
Metaprogramming tools for detecting and transforming function types.
enable_if_c< Cond::value, T >::type enable_if
SFINAE helper to control the visibility of specialisations and overloads.
Definition meta/util.hpp:87
Node< TY1, typename Append< TY2, Nil >::List > List
append (concatenate) lists-of-types
Build function types from given Argument types.
Definition function.hpp:236
access the last list element
variadic sequence of types
Definition typelist.hpp:102
Lumiera public interface.
Definition advice.hpp:102
Steam-Layer implementation namespace root.
Trait template for uniform access to function signature types.
Definition function.hpp:144
Metaprogramming: Helpers for manipulating lists-of-types.
A template metaprogramming technique for manipulating collections of types.
Some basic facilities for manipulating type sequences.