github/codeql-coding-standards

`A5-16-1`: Constructing `std::string` is considered as sub-expression in ternary operation

nbusser-sr opened this issue · 2 comments

Affected rules

  • A5-16-1: cpp/autosar/ternary-conditional-operator-used-as-sub-expression

Rule A5-16-1 (required, implementation, automated)
The ternary conditional operator shall not be used as a sub-expression.

Description

When initializing a string inside a ternary expression, A5-16-1 error is triggered.
I tried with std::uint32_t and with a class, and the error was not triggered.

Example

std::string const str{cond ? "str1" : "str2"}; // Triggers A5-16-1

Test const test{cond ? Test() : Test()}; // Ok
std::uint32_t const nb{cond ? 0 : 1}; // Ok

Possibly a duplicate of my own old ticket #612 😮‍💨
Sorry for the inconvenience

Thanks @nbusser-sr! I don't think this is a duplicate, although we will likely fix this at the same time.