Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Funkce "function" je constexpr, označte proměnnou variable "variable" constexpr, pokud je žádoucí vyhodnocení doby kompilace (con.5).
Toto pravidlo pomáhá prosadit Con.5: Použijte constexpr pro hodnoty, které je možné vypočítat v době kompilace v pokynech pro C++ Core Guidelines.
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 val2constexpr:
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;
}
Viz také
C26497
C26814
Con.5: Slouží constexpr pro hodnoty, které se dají vypočítat v době kompilace.