39template <
class T,
class Tuple>
42template <
class T,
class... Types>
43struct Index<T, std::tuple<T, Types...>> {
44 static const std::size_t
value = 0;
47template <
class T,
class U,
class... Types>
48struct Index<T, std::tuple<U, Types...>> {
60template <
class Field,
class Repr = NoHirep >
83 template <
class GenField >
89 template <
class ActPtr>
95 template <std::size_t I = 1,
typename Callable,
typename ...Args>
96 inline typename std::enable_if<I == std::tuple_size<action_collection>::value,
void>
::type apply(Callable, Repr& R,Args&...)
const {}
98 template <std::size_t I = 1,
typename Callable,
typename ...Args>
99 inline typename std::enable_if<I < std::tuple_size<action_collection>::value,
void>
::type apply(Callable fn, Repr& R, Args&... arguments)
const {
100 fn(std::get<I>(
actions_hirep), std::get<I>(R.rep), arguments...);
107template <
class GaugeField,
class R>
108using ActionSet = std::vector<ActionLevel<GaugeField, R> >;
std::vector< ActionLevel< GaugeField, R > > ActionSet
#define NAMESPACE_BEGIN(A)
static INTERNAL_PRECISION U
Base class for all actions.
AccessTypes< Action, Repr >::VectorCollection action_collection
std::enable_if< I==std::tuple_size< action_collection >::value, void >::type apply(Callable, Repr &R, Args &...) const
AccessTypes< Action, Repr >::FieldTypeCollection action_hirep_types
ActionLevel(unsigned int mul=1)
action_collection actions_hirep
std::vector< ActPtr > & actions
void push_back(Action< GenField > *ptr)
static void resize(ActPtr ap, unsigned int n)
static const std::size_t value
static const std::size_t value