Partager via


vtordisp

Détail C++

Contrôle l'ajout de membres masqués de décalage de construction/destruction de vtordisp.

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

Paramètres

  • push
    Pousse la configuration actuelle de vtordisp sur la pile interne du compilateur et place le nouveau vtordisp affectant à n.Si n n'est pas spécifié, la configuration actuelle de vtordisp n'est pas modifiée.

  • pop
    Supprime l'enregistrement supérieur de la pile interne du compilateur et restaure le vtordisp affectant à la valeur supprimée.

  • n
    Spécifie la nouvelle valeur pour la configuration de vtordisp.Les valeurs possibles sont 0, 1 ou 2, correspondant à /vd0, /vd1, et aux options du compilateur /vd2.Pour plus d'informations, consultez /vd (Désactiver les déplacements de construction).

  • on
    Équivalent à #pragma vtordisp(1).

  • off
    Équivalent à #pragma vtordisp(0).

Notes

Le pragma d' vtordisp s'applique au code seulement que les bases virtuelles d'utilisation.Si une classe dérivée substitue une fonction virtuelle qu'elle hérite d'une classe de base virtuelle, et si un constructeur ou un destructeur pour les appels classe dérivée qui s'exécutent à l'aide d'un pointeur vers la classe de base virtuelle, le compilateur peut introduire des champs masqués supplémentaires d' vtordisp dans des classes avec les bases virtuelles.

Le pragma d' vtordisp affecte la disposition des classes qui suivent la./vd0, /vd1, Et les options de /vd2 spécifient le même comportement pour les packages complets.Spécifiant 0 ou off supprime les membres masqués de vtordisp .Arrêtez vtordisp uniquement s'il n'y a aucun risque que les constructeurs et les destructeurs de la classe appelle les fonctions virtuelles sur l'objet globale pointe vers le pointeur d' this .

Spécifiant 1 ou on, la valeur par défaut, active les membres masqués de vtordisp où ils sont nécessaires.

Spécifier 2 active les membres masqués de vtordisp pour toutes les bases virtuelles avec les fonctions virtuelles.vtordisp(2) peut être nécessaire pour garantir la représentation correcte d' dynamic_cast sur un objet partielle construit.Pour plus d'informations, consultez Avertissement du compilateur (niveau 1) C4436.

#pragma vtordisp(), sans argument, restaure le vtordisp affectant à sa configuration initiale.

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

Détails de FIN C++

Voir aussi

Référence

Directives pragma et le mot clé de __Pragma