vtordisp

Específico de C++

Controla a adição de membro oculto de deslocamento de compilação/destruição de vtordisp.

#pragma vtordisp([push,] n)
#pragma vtordisp(pop)
#pragma vtordisp()
#pragma vtordisp([push,] {on | off})

Parâmetros

  • push
    Pressiona a configuração atual de vtordisp na pilha interna do compilador e define o novo vtordisp que define a n.Se n não for especificado, a configuração atual de vtordisp não é alterada.

  • pop
    Remove o registro superior da pilha interna do compilador e restaura o vtordisp que define o valor removido.

  • n
    Especifica o novo valor para a configuração de vtordisp.Os valores possíveis são 0, 1 ou 2, correspondentes à /vd0, /vd1, e as opções de compilador /vd2.Para mais informações, consulte /VD (finalizar a construção de disable).

  • on
    Equivalente a #pragma vtordisp(1).

  • off
    Equivalente a #pragma vtordisp(0).

Comentários

O pragma de vtordisp é aplicável somente o código que usa bases virtuais.Se uma classe derivada substitui uma função virtual que herda de uma classe base virtual, e se um construtor ou destrutor para chamadas de classe derivada que funcionam usando um ponteiro para a classe base virtual, o compilador pode introduzir campos ocultos adicionais de vtordisp com base em classes virtuais.

O pragma de vtordisp afeta o layout das classes que o seguir./vd0, /vd1, /vd2 E opções de especificam o mesmo comportamento para módulos completos.Especificar 0 ou off suprime os membros ocultos de vtordisp .Desativar vtordisp somente se não houver nenhuma possibilidade dos construtores e destrutores da classe chamam funções virtuais no objeto apontada pelo ponteiro de this .

Especificando 1 ou on, a opção, permite que os membros ocultos de vtordisp onde são necessários.

Especificar 2 permite que os membros ocultos de vtordisp para todas as bases virtuais com funções virtuais.vtordisp(2) pode ser necessário para garantir que o desempenho correto de dynamic_cast em um objeto parcial construído.Para mais informações, consulte Aviso do compilador (nível 1) C4436.

#pragma vtordisp(), sem argumentos, restaurar o vtordisp que define a sua configuração inicial.

#pragma vtordisp(push, 2)
class GetReal : virtual public VBase { ... };
#pragma vtordisp(pop)

Específico de FIM C++

Consulte também

Referência

Diretivas pragma e __Pragma palavra-chave