Aviso C26406
Não atribuir um ponteiro bruto a um
owner<T>
(r.3)
Esse aviso impõe o R.3 das Diretrizes Principais do C++. Para obter mais informações, confira Diretrizes Principais do C++ R.3.
Comentários
Os proprietários são inicializados de alocações ou de outros proprietários. Esse aviso ocorre quando você atribui um valor de um ponteiro bruto a um ponteiro do proprietário. Ponteiros brutos não garantem transferência de propriedade; O proprietário original ainda pode manter o recurso e tentar liberá-lo. Não há problema em atribuir um valor de um proprietário a um ponteiro bruto. Ponteiros brutos são clientes válidos para acessar recursos, mas não para gerenciá-los.
Nome da análise de código: DONT_ASSIGN_RAW_TO_OWNER
Exemplo
Usando o endereço do objeto:
Este exemplo tenta atribuir a propriedade do endereço do defaultSocket
para o ponteiro de proprietário socket
:
gsl::owner<Socket*> socket = defaultSocket ? &defaultSocket : new Socket(); // C26406
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de