0

C++ 中的这条语句是什么意思。我是通过阅读有关 Typelists 的。

我不明白运算符“>”在类型列表中代表什么?到目前为止,我从未在 C++ 模板中使用过这个?

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


typedef typelist > >
    floating_point_types;

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

4

1 回答 1

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 文档中一样,因此删除了 '<...>' 序列。

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

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

typedef typelist<float, double, long double> floating_point_types;
于 2012-11-11T17:25:25.790 回答