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

use*_*652 4 c++ variadic-templates c++11

在以下示例中

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

存储条目的数量enum似乎更像是对我的黑客攻击.

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

Bar*_*rry 5

我更喜欢static constexpr会员:

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

可能与一堆其他constexpr成员函数(size(),begin(),end(),data(),等等)