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

#include "steam/control/command-op-closure.hpp"

Description

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

closure to deal with the actual command operation.

This includes holding the invocation parameter tuple

Definition at line 128 of file command-op-closure.hpp.

Public Types

using ArgTuple = Tuple< Args >
 

Public Member Functions

 OpClosure (ArgTuple const &args)
 
 OpClosure (OpClosure const &)=default
 
 OpClosure (OpClosure &&)=default
 
void invoke (CmdFunctor const &unboundFunctor)
 Core operation: use the embedded argument tuple for invoking a functor. More...
 
bool isValid () const
 
 operator string () const
 
OpClosureoperator= (OpClosure const &)=delete
 we deliberately support immutable types as command arguments
 
OpClosureoperator= (OpClosure &&)=delete
 

Private Types

using Args = typename _Fun< SIG >::Args
 
using Builder = BuildTupleAccessor< ParamAccessor, Args >
 
using ParamStorageTuple = typename Builder::Product
 

Private Attributes

bool activated_
 
ParamStorageTuple params_
 

Member Function Documentation

◆ invoke()

void invoke ( CmdFunctor const &  unboundFunctor)
inline

Core operation: use the embedded argument tuple for invoking a functor.

Parameters
unboundFunctoran function object, whose function arguments are required to match the types of the embedded ParamStorageTuple
Note
ASSERTION failure if the function signature doesn't match the argument types tuple.
the functor might actually modify the param values. Thus this function can't be const.

Definition at line 176 of file command-op-closure.hpp.

+ Collaboration diagram for OpClosure< SIG >:

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