codeql-coding-standards icon indicating copy to clipboard operation
codeql-coding-standards copied to clipboard

`M0-1-2` - `A3-1-5` - `A4-5-1` - `M0-1-1` : Poor lambda support

Open nbusser opened this issue 9 months ago • 1 comments

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

nbusser avatar Jun 02 '24 17:06 nbusser