Compartilhar via


/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

  1. 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.

  2. Selecione a página de propriedades Propriedades de Configuração>C/C++>Linha de Comando.

  3. Digite a opção do compilador na caixa Opções Adicionais.

Para definir essa opção do compilador via programação

Confira também

Opções do compilador MSVC
Sintaxe da linha de comando do compilador MSVC