Лямбда-выражения не должны определяться в другом лямбда-выражении
Лямбда-выражения не должны определяться в другом лямбда-выражении.
Разработчики могут использовать лямбда-выражения для записи анонимных объектов функций, содержащих несколько строк кода. Вложение лямбда-выражения снижает читаемость кода, поскольку тело лямбда-выражения обычно находится в строке, где оно используется. Например, 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 также выделяет ближайшее вложенное лямбда-выражение.
Если вы ожидаете нарушения правила, но не видите его, обратитесь к разделу Нарушения стандартов кодирования не отображаются.
| Группа: Выражения |
| Категория: Консультации, Автоматизированные |