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]
caf::composed_type
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
caf::detail::type_list<>

Convenience type alias.

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

- /build/actor-framework-Z9pIPl/actor-framework-0.17.6/libcaf_core/caf/composed_type.hpp