Сложить выражение в присваивании
Я пытаюсь использовать выражение сгиба для упрощения кода. В следующем коде я пытаюсь вставить элементы в массив, но выражение сгиба не компилируется
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");
}
};
составители жалуются на отсутствие ';'
1 ответ
Сложенные выражения должны быть заключены в скобки. Следовательно:
((cmd[i++] = c), ...);
Внутренние скобки также необходимы.