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