readability-redundant-lambda-parameter-list¶
Finds lambda expressions with a redundant empty parameter list and removes it.
In C++11 and later, a lambda with no parameters does not require an explicit
() unless it has a specifier such as mutable, noexcept, or a
trailing return type. In C++23 and later, () is redundant even when such
specifiers are present.
// C++11 and later - the following lambdas will be rewritten:
auto a = []() { return 42; };
// becomes:
auto a = [] { return 42; };
auto b = [x = 1]() { return x; };
// becomes:
auto b = [x = 1] { return x; };
// C++23 and later - the following lambdas will also be rewritten:
auto c = []() mutable {};
// becomes:
auto c = [] mutable {};
auto d = []() noexcept {};
// becomes:
auto d = [] noexcept {};
auto e = []() -> int { return 0; };
// becomes:
auto e = [] -> int { return 0; };