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.
Leere optionale 'Variable' wird entwrappt, löst Ausnahme aus.
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. Bei dieser Überprüfung wird versucht, Fälle zu finden, in denen bekannt ist, dass ein std::optional Leerer ist und mit der value Methode entwappt wird. Sie können C26829, C26830 und C26860 auch für eine strengere Analyse aktivieren.
Beispiel
void f(std::optional<int> maybeEmpty)
{
std::optional<int> empty;
std::optional<int> nonEmpty{5};
nonEmpty.value() = 42; // No warning
empty.value() = 42; // warning: C26859
if (!maybeEmpty)
maybeEmpty.value() = 42; // warning: C26859
}
Um dieses Problem zu lösen, stellen Sie sicher, dass der Code niemals ein leeres optionales Auslöser entpackt.