Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Potenzialmente vuoto facoltativo 'variable' non sottoposto a wrapping, potrebbe generare un'eccezione
Osservazioni:
L'annullamento del wrapping dei valori vuoti std::optional
tramite il value
metodo genererà un'eccezione. Tale operazione può causare un arresto anomalo quando l'eccezione non viene gestita. Questo controllo tenterà di individuare i casi in cui non std::optional
viene verificata la presenza di svuotamento prima di annullare il wrapping tramite il value
metodo . È possibile abilitare C26829 e C26859 solo per un'analisi più permissiva.
Esempio
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
}
Per risolvere questo problema, assicurarsi che il codice non riscriva mai un oggetto facoltativo vuoto.