AUTOSAR C++14 Rule A5-1-3

Список параметров (возможно, пустой) должен быть включен в каждое лямбда выражение

Описание

Определение правила

Список параметров (возможно, пустой) должен быть включен в каждое лямбда выражение.

Объяснение

Вы не должны включать список параметров в лямбда выражение. Например, это выражение синтаксически верно и указывает на закрытие, которое можно вызвать без параметров:

[&counter] {
   ++counter;
}
Однако без (), вы или рецензент можете не распознать это как объект функции. Визуально яснее использовать список параметров (...) даже когда список пуст. Для образца:
[&counter]() {
   ++counter;
}

Поиск и устранение проблем

Если вы ожидаете нарушения правил, но не видите его, обратитесь к разделу «Стандартные нарушения кодирования не отображаются».

Примеры

расширить все

#include <cstdint>

void func() {
    std::int32_t count = 0;
    
    auto lambda1 = [&count] {++count;}; //Noncompliant
    auto lambda2 = [&count] () { //Compliant
        ++count;
    };
}

Лямбда-выражение, присвоенное lambda1 не имеет списка параметров и нарушает правило. Проблема устраняется, когда то же лямбда-выражение назначено lambda2.

Проверяйте информацию

Группа: Выражения
Категория: Необходимый, Автоматизированный
Введенный в R2019b