赋值中的折叠表达式

jag*_*jun 2 c++ templates generic-programming fold-expression c++17

我正在尝试使用折叠表达式来简化一些代码。在下面的代码中,我尝试将元素插入到数组中,但折叠表达式无法编译

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");
  }
};
Run Code Online (Sandbox Code Playgroud)

编译器抱怨缺少“;”

Bar*_*rry 9

折叠表达式必须加括号。因此:

((cmd[i++] = c), ...);
Run Code Online (Sandbox Code Playgroud)

内部括号也是必需的。