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