5 #ifndef SIPLASPLAS_UTILITY_FUNCTION_HPP 6 #define SIPLASPLAS_UTILITY_FUNCTION_HPP 13 template<
typename... Fs>
21 template<
typename _F,
typename... _Fs>
23 F{std::forward<_F>(f)}
27 template<
typename R,
typename... Args>
32 _f{std::forward<_F>(f)}
35 template<
typename... _Args>
36 R operator()(_Args&&... args)
const 38 return _f(std::forward<_Args>(args)...);
45 template<
typename First,
typename Second,
typename... Tail>
46 struct Function<First, Second, Tail...> :
public First,
public Function<Second, Tail...>
48 using First::operator();
51 template<
typename _First,
typename _Second,
typename... _Tail>
52 Function(_First&& first, _Second&& second, _Tail&&... tail) :
53 First(std::forward<_First>(first)),
54 Function<Second, Tail...>( std::forward<_Second>(second), std::forward<Tail>(tail)...)
58 template<
typename... Fs>
61 return { std::forward<Fs>(fs)... };
65 #endif //SIPLASPLAS_UTILITY_FUNCTION_HPP Definition: messaging.hpp:8
Definition: function.hpp:14