C ++优雅数组切片

我想将多个非连续值从数组传递给方法。当前正在工作:

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方法的实现有什么问题吗?

fjbtxf 回答:C ++优雅数组切片

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2989840.html

大家都在问