15 #ifndef CORE_FUNCTOR_H_
16 #define CORE_FUNCTOR_H_
23 template <
typename TReturn,
typename... TArgs>
36 template <
typename TLambda>
40 template <
typename TLambda,
typename TReturn,
typename... TArgs>
42 :
public Functor<TReturn, TArgs...> {
50 return lambda(std::forward<TArgs>(args)...);
55 template <
typename TLambda,
typename TReturn,
typename... TArgs>
57 :
public Functor<TReturn, TArgs...> {
65 return lambda(std::forward<TArgs>(args)...);
109 template <
typename TLambda>
virtual TReturn operator()(TArgs... args)=0
virtual ~Functor()=default
LambdaFunctor< decltype(&TLambda::operator())> L2F(const TLambda &l)
LambdaFunctor(const TLambda &lambda)
virtual ~LambdaFunctor()=default
LambdaFunctor(const LambdaFunctor &other)
TReturn operator()(TArgs... args) override
LambdaFunctor(const TLambda &lambda)
virtual ~LambdaFunctor()=default
LambdaFunctor(const LambdaFunctor &other)
TReturn operator()(TArgs... args) override