Lumiera  0.pre.03
»edit your freedom«
BindToArgument< SIG, X, pos > Class Template Reference

#include "lib/meta/function-closure.hpp"

Description

template<typename SIG, typename X, uint pos>
class lib::meta::func::BindToArgument< SIG, X, pos >

Bind a specific argument to an arbitrary value.

Especially, this "value" might be another binder.

Definition at line 658 of file function-closure.hpp.

Public Types

typedef function< ReducedSig > ReducedFunc
 

Static Public Member Functions

static ReducedFunc reduced (SIG &f, Tuple< Types< X >> const &val)
 

Private Types

enum  { ARG_CNT = count<ArgsList>::value }
 
typedef _Fun< SIG >::Args Args
 
typedef Args::List ArgsList
 
using BuildPreparedArgs = TupleConstructor< PreparedArgTypes, IdxSelector >
 
template<class SRC , class TAR , size_t i>
using IdxSelector = typename PartiallyInitTuple< SRC, TAR, pos >::template IndexMapper< i >
 
typedef func::PlaceholderTuple< RemainingFront >::List PlaceholdersBefore
 
typedef func::PlaceholderTuple< RemainingBack, pos+1 >::List PlaceholdersBehind
 
typedef Append< typename Append< PlaceholdersBefore, ValList >::List, PlaceholdersBehind >::List PreparedArgs
 
using PreparedArgTypes = typename Types< PreparedArgs >::Seq
 
typedef Append< RemainingFront, RemainingBack >::List ReducedArgs
 
using ReducedSig = typename BuildFunType< Ret, RemainingArgs >::Sig
 
using RemainingArgs = typename Types< ReducedArgs >::Seq
 
typedef Splice< ArgsList, ValList, pos >::Back RemainingBack
 
typedef Splice< ArgsList, ValList, pos >::Front RemainingFront
 
typedef _Fun< SIG >::Ret Ret
 
typedef Types< X >::List ValList
 
+ Collaboration diagram for BindToArgument< SIG, X, pos >:

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