Warnung C26498
Die Funktion "function" ist constexpr, mark variable 'variable' constexpr, wenn die Kompilierungszeitauswertung gewünscht ist (con.5)
Diese Regel hilft beim Erzwingen von Con.5 aus den C++-Kernrichtlinien: Verwenden Sie constexpr für Werte, die zur Kompilierungszeit berechnet werden können.
Hinweise
Die Warnung wird ausgelöst, indem das Ergebnis einer Funktion einer constexpr
Nichtvariablenconstexpr
zugewiesen wird, deren Wert sich nach der anfänglichen Zuordnung nicht ändert.
Codeanalysename: USE_CONSTEXPR_FOR_FUNCTIONCALL
Beispiel
Dieser Beispielcode zeigt, wo C26498 angezeigt werden kann:
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;
}
Um die Probleme zu beheben, markieren val1
und 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;
}
Siehe auch
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für