Ostrzeżenie C26498
Funkcja "function" jest constexpr, oznacz zmienną "zmienną" constexpr, jeśli wymagana jest ocena czasu kompilacji (con.5)
Ta reguła pomaga wymusić con.5 z podstawowych wytycznych języka C++: użyj constexpr dla wartości, które można obliczyć w czasie kompilacji.
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 val1
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;
}
Zobacz też
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla