как да върна последния тип на променлив шаблон?

Например

template<typename... Ts>
LastTypeOfTs f();

Как да върна последния тип на променлив шаблон?


person user1899020    schedule 28.09.2014    source източник
comment
Свързани: stackoverflow.com/questions/7661643/ stackoverflow.com/questions/18942322/   -  person Csq    schedule 28.09.2014


Отговори (1)


Можете да направите рекурсия на шаблон, както е показано по-долу:

template<typename T, typename... Ts>
struct LastTypeOfTs {
   typedef typename LastTypeOfTs<Ts...>::type type;
};

template<typename T>
struct LastTypeOfTs<T> {
  typedef T type;
};

template<typename... Ts>
typename LastTypeOfTs<Ts...>::type f() {
  //...
}

ДЕМО НА ЖИВО

person 101010    schedule 28.09.2014