分配中的折叠表达式

fold expression in assignment

本文关键字:表达式 折叠 分配      更新时间:2023-10-16

我正在尝试使用折叠表达式来简化某些代码。在以下代码中,我试图将元素插入数组中,但是折叠表达式不编译

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), ...);

也需要内括号。