AMDiS  0.3
The Adaptive Multi-Dimensional Simulation Toolbox
Composer< F, Gs > Struct Template Reference

Composition of Functors. More...

#include <Composer.hpp>

Public Member Functions

template<class F_ , class... Gs_, REQUIRES(Concepts::Similar< Types< F, Gs... >, Types< F_, Gs_... >>) >
constexpr Composer (F_ &&f, Gs_ &&... gs)
 
template<class... Ts>
constexpr auto operator() (Ts const &... args) const
 

Public Attributes

f_
 
std::tuple< Gs... > gs_
 

Detailed Description

template<class F, class... Gs>
struct AMDiS::Operation::Composer< F, Gs >

Composition of Functors.

Implement the composition c:=f(g1,g2,...,gN), wherefis an N-ary functor gI` are functors of the same arity. The composition is defined as

c(a1,a2,...,aM) := f(g1(a1,a2,..,aM), g2(a1,a2,...,aM),...,gN(a1,a2,...,aM))

Requirements:

  • sizeof...(Gs) == N, with N = arity(F)
  • arity(Gs[0]) == arity(Gs[i]) for i = 1,...,N-1

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