【发布时间】:2014-06-10 17:57:08
【问题描述】:
在这个简化的代码中:
template <int... vars>
struct Compile_Time_Array_Indexes
{
static std::array < int, sizeof...(vars)> indexes;//automatically fill it base on sizeof...(vars)
};
template <int ... vars>
struct Compile_Time_Array :public Compile_Time_Array_Indexes<vars...>
{
};
我想根据vars... 大小自动填充indexes。
示例:
Compile_Time_Array <1,3,5,2> arr1;//indexes --> [0,1,2,3]
Compile_Time_Array <8,5> arr2; // indexes --> [0,1]
有什么想法吗?
【问题讨论】:
-
C++14 带来了
std::integer_sequence(虽然如果这些是索引,你可以考虑使用std::size_t,它有一个很好的预制std::index_sequence)。 -
类似this Q&A? (也可以在没有
constexprIIRC 的情况下使用)
标签: c++ templates c++11 variadic-templates c++14