Лямбда-выражения не должны быть заданы в другом лямбда-выражении
Лямбда-выражения не должны быть заданы в другом лямбда-выражении.
Разработчики могут использовать лямбда-выражения, чтобы записать объекты анонимной функции, которые содержат несколько строк кода. Вложенное лямбда-выражение уменьшает удобочитаемость кода, потому что тело лямбда-выражения обычно находится в линии, где это используется. Например, find_if
алгоритм берет унарный предикат в качестве одного из его аргументов. Разработчик может использовать лямбда-выражение, чтобы задать условие предиката в объявлении find_if
. В этом фрагменте кода, find_if
алгоритм возвращает первый член вектора из целых чисел, который больше 2, и это является четным.
std::vector<int> v = { 1, 2, 3, 4 }; std::find(v.begin(), v.end(), [](int val) { return val>2 && val%2==0;});
Polyspace® лямбда-выражения флагов, которые заданы в другом лямбда-выражении. Polyspace также подсвечивает самое близкое вложенное лямбда-выражение.
Если вы ожидаете нарушение правила, но не видите его, относитесь, чтобы Диагностировать, Почему Кодирующие Стандартные Нарушения Не Появляются как ожидалось.
Группа: Выражения |
Категория: консультация, автоматизированная |