Upozornění C26498
Funkce "function" je constexpr, označte proměnnou variable "variable" constexpr, pokud je žádoucí vyhodnocení doby kompilace (con.5).
Toto pravidlo pomáhá vynutit Con.5 z pokynů pro C++ Core: použijte constexpr pro hodnoty, které je možné vypočítat v době kompilace.
Poznámky
Upozornění se aktivuje přiřazením výsledku constexpr
funkce k jakékoli proměnné,constexpr
jejíž hodnota se po počátečním přiřazení nezmění.
Název analýzy kódu: USE_CONSTEXPR_FOR_FUNCTIONCALL
Příklad
Tento ukázkový kód ukazuje, kde se může objevit C26498:
constexpr int getMyValue()
{
return 1;
}
void foo()
{
constexpr int val0 = getMyValue(); // no C26498
const int val1 = getMyValue(); // C26498, C26814
int val2 = getMyValue(); // C26498, value is never modified
int val3 = getMyValue(); // no C26498, val3 is assigned to below.
val3 = val3 * val2;
}
Pokud chcete tyto problémy opravit, označte val1
je a val2
constexpr
:
constexpr int getMyValue()
{
return 1;
}
void foo()
{
constexpr int val0 = getMyValue(); // OK
constexpr int val1 = getMyValue(); // OK
constexpr int val2 = getMyValue(); // OK
int val3 = getMyValue(); // OK
val3 = val3 * val2;
}