【发布时间】:2017-07-12 05:57:12
【问题描述】:
这样可以吗
int foo(){
static int i=0;
ret = i++;
return ret;
}
const std::array<int,3> arr = {{foo(),foo(),foo()}};
在(模板?)函数或指定“调用 foo 以初始化每个成员”的方式中?即
const std::array<int,3> arr = fill_with_foo<3,foo>();
对于上下文,arr 是队列中的一个缓冲区,将从中读取 N 个元素(在编译时已知)。目前我正在使用代码生成来创建长表单,并且我有一个函数,它只是分配一个普通数组,用一个 for 循环填充它并返回数组,但我想知道是否可以使用缓冲区数组 const。
//编辑:不像链接的“重复”,我需要
int foo();
在编译时是不确定的,即我认为 constexpr 是不可能的(正如我所说,它需要从运行时填充的队列中读取)。我主要对删除无用的副本感兴趣
【问题讨论】:
-
你试过把它变成 constexpr 吗?
-
@Bob__ 我认为在运行时填充的队列不起作用?