Nota
O acceso a esta páxina require autorización. Pode tentar iniciar sesión ou modificar os directorios.
O acceso a esta páxina require autorización. Pode tentar modificar os directorios.
No asigne a un
owner<T>que pueda estar en estado válido (r.3)
Comentarios
Si un puntero propietario ya apunta a un búfer de memoria válido, no debe asignarse a otro valor sin liberar primero su recurso actual. Esta asignación puede provocar una pérdida de recursos incluso si la dirección del recurso se copia en algún puntero sin procesar (ya que los punteros sin procesar no deben liberar recursos). Para más información, consulte C++ Core Guidelines.
Nombre de análisis de código: DONT_ASSIGN_TO_VALID
Ejemplo 1
Sobrescribir un propietario en un bucle:
gsl::owner<Shape*> shape = nullptr;
while (shape = NextShape()) // C26405
Process(shape) ? delete shape : 0;