Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La 'variable' opcional vacía se desencapsula, producirá una excepción.
Comentarios
La desencapsulación de valores vacíos std::optional a través del value método producirá una excepción. Esta operación puede provocar un bloqueo cuando no se controla la excepción. Esta comprobación intentará buscar casos en los que se sabe que un elemento std::optional está vacío y desencapsulado mediante el value método . También puede habilitar C26829, C26830 y C26860 para un análisis más estricto.
Ejemplo
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
}
Para solucionar este problema, asegúrese de que el código nunca desajusta un opcional vacío.