Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 用C+包装Loki::Typelist+;11可变模板_C++_Metaprogramming_Variadic Templates - Fatal编程技术网

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

C++ 用C+包装Loki::Typelist+;11可变模板,c++,metaprogramming,variadic-templates,C++,Metaprogramming,Variadic Templates,我试图避免使用LOKI_TYPELIST_n宏,所以我认为我可以编写简单的LOKI::TYPELIST包装器 template <typename...Ts> struct TYPELIST; template <> struct TYPELIST<> { typedef Loki::NullType Result; }; template <typename HEAD, typename...Ts> struct TYPELIST&l

我试图避免使用LOKI_TYPELIST_n宏,所以我认为我可以编写简单的LOKI::TYPELIST包装器

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;
};
模板
结构类型表;
模板
结构类型表
{
typedef-Loki::NullType结果;
};
模板
结构类型表
{
typedef-Loki::类型列表结果;
};
编译后,我得到以下错误:

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’
错误:“template struct Loki::Typelist”的模板参数列表中参数2的类型/值不匹配
错误:应为类型,但得到“TYPELIST::Result”
我认为
TYPELIST::Result
是一种类型。怎么了? 此处为GCC 4.6.2

我想这样使用它:

typedef TYPELIST<
        EventTank1,
        EventTank2,
        EventTank3
    >::Result EVENTS_ALL__;
typedef类型列表<
事件1,
事件2,
事件箱3
>::结果事件\u所有\u;

谢谢。

您忘记了
TYPELIST::Result前面的
typename
单词。仅仅因为你知道它是一种类型,并不意味着编译器也知道它(如果有的话!)。

Oh…:(我对新版本的GCC很懒,在错误消息中建议忘记
typename
。谢谢Matthieu。