模板,从编译时初始化器列表中的数组分支为长度分支
Template, branching on length for array from compile-time initializer list
基本上我尝试做的是
#include <array>
#include <initializer_list>
template <class... Fs>
auto F(const std::initializer_list<double>& vars, const Fs&... exprs) {
return std::array<double, vars.size()>{};
}
当然,这不是编译,因为VAR是编译器已知的长度上的编译时常数。事实是,我确实知道它在编译时长,尽管值不知道。问题是,如果我将初始化列表扩展为variadic模板,那将导致两个变异包。
i 是否必须将显式数字参数传递给该函数?我如何实现或近似所需的语义?
编辑:我不必返回数组,我只需要返回一系列双打,最好是在堆栈上。
如果您知道编译时的大小,为什么不将固定尺寸数组与长度为模板参数?
#include <array>
template < size_t N, class... Fs >
auto F(const double (&vars)[N], const Fs&... exprs) {
return std::array<double, N>{};
}
int main()
{
auto a = F({ 1, 2, 3, 4 });
}
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 将数组的地址分配给变量并删除
- 从C++本机插件更新Vector3数组
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 数组索引的值没有增加
- 将对象数组的引用传递给函数
- 为char数组调整zlib-zpipe
- 2D数组来自文本输入,中间有空格
- std::向量与传递值的动态数组
- 在c++中用vector填充一个简单的动态数组
- 使用strcpy将char数组的元素复制到另一个数组
- 使用指针从C++中的数组中获取最大值
- C++使用整数的压缩数组初始化对象
- 告诉一个 const char 数组,除了编译时 C 样式的字符串外,它不以 '