#ifndef TYPEASVALUE_SRC_LIST_OPERATION_NTH_H_ #define TYPEASVALUE_SRC_LIST_OPERATION_NTH_H_ #include "operation/math.h" namespace tav { template < typename Index, typename Pair > struct Nth { typedef Eval>, Tail >> type; }; template struct Nth, Pair> { typedef Head type; }; template struct Nth { typedef void type; }; template <> struct Nth, void> { typedef void type; }; template using First = Eval, List>>; template using Second = Eval, List>>; template using Third = Eval, List>>; } #endif // TYPEASVALUE_SRC_LIST_OPERATION_NTH_H_