Переменные не должны быть неявно захвачены в лямбда выражении
Переменные не должны неявно захватываться в лямбда выражении.
В лямбда-выражении у вас есть опция неявно захватывать переменные. Например, это лямбда-выражение
[&](std::int32_t var) {
sum+ = var;
}Если переменная в теле выражения происходит из вызывающего контекста.
Например, в предыдущем лямбда-выражении не ясно, sum получен из контекста вызова или является глобальной переменной.
Если используются все переменные, захваченные из вызывающего контекста, и изменяются или только считываются (Если считываются переменные, предпочтительным является захват путем копирования).
Если вы захватываете переменные явно в лямбда выражении, у вас есть больше контроля над тем, захватывать ли по ссылке или копие.В сложение вы или рецензент можете прочитать лямбда выражение и определить, была ли переменная получена из контекста вызова.
Если вы ожидаете нарушения правил, но не видите его, обратитесь к разделу «Стандартные нарушения кодирования не отображаются».
| Группа: Выражения |
| Категория: Необходимый, Автоматизированный |