在這種簡化代碼:如何根據可變參數模板的大小自動填充std :: array?
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'](http://en.cppreference.com/w/ cpp/utility/integer_sequence)(儘管如果這些是索引,你可能會考慮使用'std :: size_t',它有一個很好的預製'std :: index_sequence')。 – chris
像[本問答](http://stackoverflow.com/a/19023500/819272)? (也可以在沒有'constexpr' IIRC的情況下運行) – TemplateRex