Avviso C26498
La funzione 'function' è constexpr, contrassegnare la variabile 'variable' constexpr se si desidera eseguire la valutazione in fase di compilazione (con.5)
Questa regola consente di applicare Con.5 dalle linee guida di base di C++: usare constexpr per i valori che possono essere calcolati in fase di compilazione.
Osservazioni:
L'avviso viene attivato assegnando il risultato di una constexpr
funzione a qualsiasi variabile non-constexpr
il cui valore non cambia dopo l'assegnazione iniziale.
Nome dell'analisi del codice: USE_CONSTEXPR_FOR_FUNCTIONCALL
Esempio
Questo codice di esempio mostra dove può essere visualizzato 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;
}
Per risolvere i problemi, contrassegnare val1
e 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;
}