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