#ifndef TYPEASVALUE_SRC_FUNCTION_APPLY_H_ #define TYPEASVALUE_SRC_FUNCTION_APPLY_H_ #include "operation/math.h" #include "conditional/cond.h" #include "detail/apply.h" namespace tav { typedef detail::placeholder<0> _0; typedef detail::placeholder<1> _1; typedef detail::placeholder<2> _2; typedef detail::placeholder<3> _3; template < template class Function, typename... Arguments > using Apply = Cond< Branch< GreaterThan, Size<2>>, detail::apply_variadic >, Branch< IsEqualValue, Size<2>>, detail::apply_pair >, Branch< IsEqualValue, Size<1>>, detail::apply_single >, Else< detail::apply_none > >; } #endif // TYPEASVALUE_SRC_FUNCTION_APPLY_H_