使用运算符“>>”的typedef是什么意思?

时间:2012-11-11 17:13:10

标签: c++ templates

C ++中的这个陈述是什么意思。我通过阅读关于类型列表来看到。

我不明白运营商“>”在typelist中代表什么?到目前为止,我从未在C ++模板中使用过它?

template 
struct typelist
{
    typedef H head;
    typedef T tail;
};


typedef typelist > >
    floating_point_types;

感谢您的一些简短解释! ¿这是可变参数模板吗?

1 个答案:

答案 0 :(得分:5)

代码片段看起来不对。从名称和上下文我猜测它的意思是这样的:

template <typename H, typename T>
struct typelist
{
    typedef H head;
    typedef T tail;
};


typedef typelist<float, typelist<double, long double> >
    floating_point_types;

原始代码就好像它被粘贴到HTML文档中一样,因此具有'&lt; ...&gt;'的序列除去。

当然,使用C ++ 2011,我们不需要做这样的事情。我们可以只使用可变参数模板:

template <typename... T> struct typelist {};

typedef typelist<float, double, long double> floating_point_types;