首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用C++11可变模板包装Loki::Typelist

使用C++11可变模板包装Loki::Typelist
EN

Stack Overflow用户
提问于 2012-02-27 18:44:42
回答 1查看 2.1K关注 0票数 2

我尽量避免使用Loki宏,所以我想我可以编写简单的LOKI_TYPELIST_n::Typelist包装器。

代码语言:javascript
复制
template <typename...Ts>
struct TYPELIST;

template <>
struct TYPELIST<>
{
    typedef Loki::NullType Result;
};

template <typename HEAD, typename...Ts>
struct TYPELIST<HEAD,Ts...>
{
    typedef Loki::Typelist<HEAD, TYPELIST<Ts...>::Result> Result;
};

在编译时,我得到以下错误:

代码语言:javascript
复制
error: type/value mismatch at argument 2 in template parameter list for ‘template<class T, class U> struct Loki::Typelist’
error:   expected a type, got ‘TYPELIST<Ts ...>::Result’

我认为TYPELIST<Ts...>::Result是一种类型。它有什么问题?这里是GCC 4.6.2。

我想这样使用它:

代码语言:javascript
复制
typedef TYPELIST<
        EventTank1,
        EventTank2,
        EventTank3
    >::Result EVENTS_ALL__;

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-27 19:13:56

你在TYPELIST<Ts ...>::Result面前忘了typename这个词。仅仅因为您知道它是一个类型,并不意味着编译器也知道它(如果真是这样!)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9463659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档