CAF 0.17.6
Loading...
Searching...
No Matches
caf::composed_type< Xs, Ys, Zs, Rs > Struct Template Reference

Computes the type for f*g (actor composition). More...

(Note that these are not member symbols.)

template<class F, class G>
using composed_type_t
 Convenience type alias.

Detailed Description

template<class Xs, class Ys, class Zs, class Rs>
struct caf::composed_type< Xs, Ys, Zs, Rs >

Computes the type for f*g (actor composition).

This metaprogramming function implements the following pseudo-code (with f and g modelled as pairs where the first element is the input type and the second type is the output type).

let composed_type f g =
[(fst x, snd y) | x <- g, y <- f,
snd x == fst y]
Computes the type for f*g (actor composition).
Definition composed_type.hpp:45

This class implements the list comprehension above in a single shot with worst case n*m template instantiations using an inner and outer loop, where n is the size of Xs and m the size of Ys. Zs is a helper that models the "inner loop variable" for generating the cross product of Xs and Ys. Rs collects the results.

◆ composed_type_t

template<class Xs, class Ys, class Zs, class Rs>
template<class F, class G>
using composed_type_t
related
Initial value:

Convenience type alias.


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