Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Funkcja "function" jest constexpr, oznacz zmienną "zmienną" constexpr, jeśli wymagana jest ocena czasu kompilacji (con.5)
Ta reguła pomaga wymusić Con.5: używaj constexpr dla wartości, które można obliczyć podczas kompilacji w Podstawowych Wytycznych C++.
Uwagi
Ostrzeżenie jest wyzwalane przez przypisanie wyniku constexpr funkcji do dowolnej zmiennej innej niżconstexpr zmienna, której wartość nie zmienia się po początkowym przypisaniu.
Nazwa analizy kodu: USE_CONSTEXPR_FOR_FUNCTIONCALL
Przykład
Ten przykładowy kod pokazuje, gdzie może pojawić się kod 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;
}
Aby rozwiązać problemy, oznacz i val1val2constexpr:
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;
}
Zobacz też
C26497
C26814
Con.5: Używaj constexpr dla wartości, które można obliczyć w czasie kompilacji