Partilhar via


Aviso C26405

Não atribuir a um owner<T> que possa estar em estado válido (r.3)

Observações

Se um ponteiro proprietário já apontar para um buffer de memória válido, ele não deve ser atribuído a outro valor sem liberar seu recurso atual primeiro. Essa atribuição pode levar a um vazamento de recursos, mesmo que o endereço do recurso seja copiado em algum ponteiro bruto (porque os ponteiros brutos não devem liberar recursos). Para obter mais informações, consulte as Diretrizes principais do C++.

Nome da análise de código: DONT_ASSIGN_TO_VALID

Exemplo 1

Substituindo um proprietário em um loop:

gsl::owner<Shape*> shape = nullptr;
while (shape = NextShape()) // C26405
    Process(shape) ? delete shape : 0;