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...

Related Symbols

(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.

Friends And Related Symbol Documentation

◆ composed_type_t

template<class Xs , class Ys , class Zs , class Rs >
template<class F , class G >
using composed_type_t
related
Initial value:
typename composed_type<G, F, F,
detail::type_list<>>::type

Convenience type alias.


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