我尽量避免使用Loki宏,所以我想我可以编写简单的LOKI_TYPELIST_n::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;
};在编译时,我得到以下错误:
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。
我想这样使用它:
typedef TYPELIST<
EventTank1,
EventTank2,
EventTank3
>::Result EVENTS_ALL__;谢谢。
发布于 2012-02-27 19:13:56
你在TYPELIST<Ts ...>::Result面前忘了typename这个词。仅仅因为您知道它是一个类型,并不意味着编译器也知道它(如果真是这样!)。
https://stackoverflow.com/questions/9463659
复制相似问题