分配中的折叠表达式
fold expression in assignment
我正在尝试使用折叠表达式来简化某些代码。在以下代码中,我试图将元素插入数组中,但是折叠表达式不编译
struct test {
std::string cmd[20];
test() {
int i = 0;
auto insert = [&](auto... c) {
assert(i < 20);
(cmd[i++] = c), ...;
};
insert("c");
insert("c", "c2");
}
};
编译器抱怨缺少';'
折叠表达式必须括号。因此:
((cmd[i++] = c), ...);
也需要内括号。
相关文章:
- 带有用户定义类的c++折叠表达式
- 折叠表达式和函数名称查找
- 将折叠表达式传递给可变参数模板
- 如何从折叠表达式中获取索引
- GCC 7 C++17支持折叠表达式
- 使用折叠表达式打印每个元素之间的空格
- 折叠表达式模板参数推导/替换失败
- 折叠表达式和参数包:static_assert 内 Args&& 和 Args 之间的区别
- 为什么这个C++折叠表达式有效?
- 折叠表达式:解析器堆栈溢出
- 折叠表达式、参数包扩展、类成员函数中的递归
- 折叠表达式会短路吗?
- 在折叠表达式中扩展参数包作为 lambda 捕获的一部分 - gcc 与 clang
- enable_if_t 中带有折叠表达式的编译器错误
- 使用使用声明引入的折叠表达式中的操作员合法
- 使用折叠表达式构造一个平凡的对象
- 折叠表达式扩展包中的最大元素数
- C 变化模板折叠表达式
- 使用运算符>>折叠表达式
- 在折叠表达式中使用 lambda 时"Uninitialized captured reference"错误 - clang vs gcc