我想将多个非连续值从数组传递给方法。当前正在工作:
double constexpr args[]{ 0,1,2,3,4 };
void example(std::initializer_list<double>);
example({ args[1],args[3],args[4] });
为了简化调用,我宁愿提供参数,而无需与每个索引一起重复args
变量。以下是我尝试的操作(我知道在编译时的所有索引):
template<size_t... I,typename T,size_t S>
std::initializer_list<T> get(T const (&array)[S]) {
return { array[I]... };
}
example(get<1,4>(args));
但是,对示例方法的上述调用正在传递看似未初始化的内存(我正在从initializer_list填充向量,并且最终包含诸如6.95278e-310之类的垃圾值)。谁能看到我的get
方法的实现有什么问题吗?