1 #ifndef GAUDIKERNEL_COMPOSE_H 2 #define GAUDIKERNEL_COMPOSE_H 12 #if __cplusplus > 201402L 15 template <
typename... lambda_ts>
17 using lambda_ts::operator()...;
19 template <
typename... lambda_ts>
20 overloaded_t( lambda_ts... )->overloaded_t<lambda_ts...>;
24 template <
typename... lambda_ts>
27 template <
typename lambda_t>
32 using lambda_t::operator();
35 template <
typename lambda_t,
typename... more_lambda_ts>
39 template <
typename... lambda_ts>
40 overloaded_t(
const lambda_t& lambda, lambda_ts&&... more_lambdas )
41 : lambda_t{lambda},
super_t{std::forward<lambda_ts>( more_lambdas )...}
44 template <
typename... lambda_ts>
46 : lambda_t{
std::move( lambda )},
super_t{std::forward<lambda_ts>( more_lambdas )...}
50 using lambda_t::operator();
51 using super_t::operator();
63 template <
typename... lambda_ts>
66 #if __cplusplus > 201402L 76 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.