#ifndef TYPEASVALUE_SRC_LIST_OPERATION_TAKE_H_ #define TYPEASVALUE_SRC_LIST_OPERATION_TAKE_H_ #include "operation/math.h" namespace tav { namespace detail { template < typename Count, typename Current > struct Take { typedef Cons< Head, Eval>, Tail >> > type; }; template struct Take, Current> { typedef void type; }; template struct Take { typedef void type; }; template <> struct Take, void> { typedef void type; }; } template < typename Count, typename Current > using Take = Eval>; } #endif // TYPEASVALUE_SRC_LIST_OPERATION_TAKE_H_