Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Não atribua um ponteiro bruto a um
owner<T>(r.3)
Este aviso impõe o R.3 das Diretrizes Básicas do C++. Para obter mais informações, consulte C++ Core Guidelines R.3.
Observações
Os proprietários são inicializados a partir de alocações ou de outros proprietários. Este aviso surge quando tu atribuis um valor de um "raw pointer" a um "owner pointer". Os ponteiros brutos não garantem a 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 crus são clientes válidos para aceder a recursos, mas não para os gerir.
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 defaultSocket ao ponteiro proprietário socket.
gsl::owner<Socket*> socket = defaultSocket ? &defaultSocket : new Socket(); // C26406