我正在尝试实现 loki 类型列表的可变参数模板包装器。
以 loki 样式合并两个类型列表很容易,但我在可变参数模板样式中合并时遇到问题。
这是我的实现(简化,没有 push_back , index_of ,...,方法)。
template<typename... Ts>
struct dl32TypeList;
template<typename HEAD , typename... TAIL>
struct dl32TypeList<HEAD,TAIL...>
{
static const unsigned int size = sizeof...(TAIL) + 1;
using value = dl32Loki_like_TypeList<HEAD, typename dl32TypeList<TAIL...>::value>;
};
template<>
struct dl32TypeList<>
{
using value = dl32NoType;
static const unsignedint size = 0;
};
我想要类似的东西:
template<typename OTHER_TYPELIST>
using merge = dl32TypeList<HEAD , TAIL... , typename OTHER_TYPELIST::???>;
这就是问题所在:我们不能将可变参数模板参数存储为 using/typedef,所以我对如何做到这一点有任何想法。(注意 OTHER_TYPELIST::???)。