为什么在尝试获取包的最后一个参数时不能推断出模板参数?

时间:2017-09-27 00:49:54

标签: c++

看看这段代码:

template <typename ...TYPES>
struct List {
};

template <typename LIST>
struct Last;

template <typename ...HEAD, typename LAST>
struct Last<List<HEAD..., LAST>> {
    typedef LAST Value;
};

此处,无法推断出Last的模板参数。为什么?有没有比递归更简单的解决方案,直到一种类型仍然存在?

First的实施工作直截了当:

template <typename LIST>
struct First;

template <typename FIRST, typename ...TAIL>
struct First<List<FIRST, TAIL...>> {
    typedef FIRST Value;
};

0 个答案:

没有答案
相关问题