/vd (desabilitar deslocamentos de construção)
Sintaxe
/vdn
Argumentos
0
Suprime o membro de deslocamento do construtor/destruidor vtordisp. Selecione essa opção apenas se você tiver certeza de que todos os destruidores e construtores da classe chamam funções virtuais virtualmente.
1
Habilita a criação de membros ocultos de deslocamento do construtor/destruidor vtordisp. Essa é a opção padrão.
2
Permite que você use o operador dynamic_cast em um objeto que está sendo construído. Por exemplo, um dynamic_cast de uma classe base virtual para uma classe derivada.
/vd2 adiciona um campo vtordisp quando você tem uma base virtual com funções virtuais. /vd1 deve ser suficiente. O caso mais comum em que /vd2 é necessário é quando a única função virtual em sua base virtual é um destruidor.
Comentários
Essas opções se aplicam somente ao código C++ que usa bases virtuais.
O Visual C++ implementa o suporte ao deslocamento de construção do C++ em situações em que a herança virtual é usada. Deslocamentos de construção resolvem o problema criado quando uma função virtual, declarada em uma base virtual e substituída em uma classe derivada, é chamada em um construtor durante a construção de uma classe derivada adicional.
O problema é que pode ser passado um ponteiro incorreto this
para a função virtual como resultado de discrepâncias entre os deslocamentos nas bases virtuais de uma classe e os deslocamentos em suas classes derivadas. A solução fornece um único ajuste de deslocamento de construção, chamado de campo vtordisp, para cada base virtual de uma classe.
Por padrão, os campos vtordisp são introduzidos sempre que o código define construtores e destruidores definidos pelo usuário e também substitui funções virtuais de bases virtuais.
Essas opções afetam arquivos de origem inteiros. Use o vtordisp para suprimir e habilitar novamente os campos vtordisp classe por classe.
Para definir esta opção do compilador no ambiente de desenvolvimento do Visual Studio
Abra a caixa de diálogo Páginas de Propriedades do projeto. Para obter detalhes, confira Definir as propriedades de build e do compilador do C++ no Visual Studio.
Selecione a página de propriedades Propriedades de Configuração>C/C++>Linha de Comando.
Digite a opção do compilador na caixa Opções Adicionais.
Para definir essa opção do compilador via programação
- Consulte AdditionalOptions.
Confira também
Opções do compilador MSVC
Sintaxe da linha de comando do compilador MSVC