codeql-coding-standards
codeql-coding-standards copied to clipboard
`M0-1-2` - `A3-1-5` - `A4-5-1` - `M0-1-1` : Poor lambda support
Affected rules
- M0-1-2
- A3-1-5
- A4-5-1
- M0-1-1
Description
Using lambda expression trigger various side effects alerts.
Example
A3-1-5
const auto lambda = []() -> void {} // Trigger A3-1-5
A4-5-1
enum Enum { A, B };
const auto lambda = [](const Enum e) -> void {}
const auto e = Enum::A;
lambda(e); // Triggers A4-5-1
M0-1-1 / M0-1-2
std::uint32_t u32{0};
const auto lambda = [&u32]() -> void {
++u32;
}
lambda();
if (u32 == 0) { // Triggers M0-1-2
return;
}
foo(); // (could be any expression) Triggers M0-1-1