1 #ifndef GAUDIKERNEL_COMPOSE_H 2 #define GAUDIKERNEL_COMPOSE_H 10 #if __cplusplus > 201402L 13 template <
typename... lambda_ts>
14 struct overloaded_t : lambda_ts... {
15 using lambda_ts::operator()...;
17 template <
typename... lambda_ts>
18 overloaded_t( lambda_ts... )->overloaded_t<lambda_ts...>;
22 template <
typename... lambda_ts>
25 template <
typename lambda_t>
30 using lambda_t::operator();
33 template <
typename lambda_t,
typename... more_lambda_ts>
37 template <
typename... lambda_ts>
38 overloaded_t(
const lambda_t& lambda, lambda_ts&&... more_lambdas )
39 : lambda_t{lambda},
super_t{std::forward<lambda_ts>( more_lambdas )...} {}
40 template <
typename... lambda_ts>
42 : lambda_t{
std::move( lambda )},
super_t{std::forward<lambda_ts>( more_lambdas )...} {}
44 using lambda_t::operator();
45 using super_t:: operator();
57 template <
typename... lambda_ts>
59 #if __cplusplus > 201402L 69 template <
typename... lambda_ts>
overloaded_t(lambda_t &&lambda, lambda_ts &&...more_lambdas)
overloaded_t(const lambda_t &lambda, lambda_ts &&...more_lambdas)
overloaded_t(const lambda_t &lambda)
auto overload(lambda_ts &&...lambdas)
overloaded_t(lambda_t &&lambda)
auto compose(lambda_ts &&...lambdas)
Helper functions to set/get the application return code.