HOPS
HOPS class reference
MHO_ArgumentCarrier.hh
Go to the documentation of this file.
1 #ifndef MHO_ArgumentCarrier_HH__
2 #define MHO_ArgumentCarrier_HH__
3 
4 #include "MHO_Meta.hh"
5 #include "MHO_Operator.hh"
6 
7 #include <tuple>
8 
9 namespace hops
10 {
11 
21 template< typename... Args > class MHO_ArgumentCarrier: public MHO_Operator
22 {
23  protected:
24  std::tuple< Args... > fArgs;
25 
26  template< typename Func > auto Apply(Func&& func) -> decltype(mho_tuple_apply(std::forward< Func >(func), fArgs))
27  {
28  return mho_tuple_apply(std::forward< Func >(func), fArgs);
29  }
30 };
31 
32 } // namespace hops
33 
34 #endif
template meta-programming helper functions, mostly tuple access/modification
Variadic base that stores an operator's typed arguments (pointers expected) in a tuple and exposes a ...
Definition: MHO_ArgumentCarrier.hh:22
std::tuple< Args... > fArgs
Definition: MHO_ArgumentCarrier.hh:24
auto Apply(Func &&func) -> decltype(mho_tuple_apply(std::forward< Func >(func), fArgs))
Definition: MHO_ArgumentCarrier.hh:26
Class MHO_Operator.
Definition: MHO_Operator.hh:21
Definition: MHO_AdhocFlagging.hh:18
auto mho_tuple_apply(Func &&f, Tuple &&t) -> decltype(mho_tuple_apply_impl(std::forward< Func >(f), std::forward< Tuple >(t), typename mho_make_index_sequence< std::tuple_size< typename std::decay< Tuple >::type >::value >::type{}))
Definition: MHO_Meta.hh:359