Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Potenziell leere optionale 'Variable' wird entwrappt, kann Eine Ausnahme auslösen
Hinweise
Wenn Leere std::optional Werte über die value Methode entwrapping werden, wird eine Ausnahme ausgelöst. Dieser Vorgang kann zu einem Absturz führen, wenn die Ausnahme nicht behandelt wird. Diese Überprüfung versucht, Fälle zu finden, in denen eine std::optional nicht auf Leerheit überprüft wird, bevor sie über die value Methode entpackt wird. Sie können C26829 und C26859 nur für eine eingeschränktere Analyse aktivieren.
Beispiel
std::optional<int> getOptional();
void f(std::optional<int> maybeEmpty)
{
if (maybeEmpty)
maybeEmpty.value() = 42; // No warning
maybeEmpty.value() = 5; // warning: C26860
std::optional<int> o = getOptional();
o.value() = 42; // warning: C26860
}
Um dieses Problem zu lösen, stellen Sie sicher, dass der Code niemals ein leeres optionales Auslöser entpackt.