例如
template<typename... Ts>
LastTypeOfTs f();
如何返回最后一种可变参数模板?
答案 0 :(得分:9)
您可以执行模板递归,如下所示:
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() {
//...
}