Aviso C26495
A variável "variable" não é inicializada. Sempre inicialize uma variável de membro (type.6).
Comentários
Uma variável de membro não é inicializada por um construtor ou por um inicializador. Verifique se todas as variáveis estão inicializadas até o final da construção. Para obter mais informações, consulte as Diretrizes Principais do C++ Type.6 e C.48.
Essa verificação é intraprocessual. Sempre que houver uma chamada de função para uma função de membro não const, a verificação pressupõe que essa função de membro inicializa todos os membros. Essa heurística pode resultar em erros perdidos e está em vigor para evitar resultados falsos positivos. Além disso, quando um membro é passado por referência nonconst a uma função, a verificação assume que a função inicializa o membro.
Nome da análise de código: MEMBER_UNINIT
Exemplo
O exemplo a seguir gera um aviso C26495 porque a variável de membro value
não é inicializada quando um objeto MyStruct
é criado.
struct MyStruct
{
int value;
MyStruct() {} // C26495, MyStruct::value is uninitialized
};
Para resolver o problema, você pode adicionar a inicialização na classe a todas as variáveis de membro.
struct MyStruct
{
int value{}; // empty brace initializer sets value to 0
MyStruct() {} // no warning, MyStruct::value is set via default member initialization
};