存储可变参数模板的模板参数数

时间:2016-04-18 19:07:56

标签: c++ c++11 variadic-templates

在以下示例中

template <size_t... Entries>
struct StaticArray
{
  enum {N = sizeof...(Entries)};
  size_t array[N] = {Entries...};
};

enum中存储条目数似乎更像是对我的攻击。

这真的是存储条目数量的文本书方式还是有更简洁的方法来做到这一点?

1 个答案:

答案 0 :(得分:5)

我更喜欢static constexpr成员:

template <size_t... Entries>
struct StaticArray
{
    static constexpr size_t N = sizeof...(Entries);
    size_t array[N] = {Entries...};
};

可能还有许多其他constexpr成员函数(size()begin()end()data()等。