/vmm, /vms, /vmv (Représentation à but général)

Utilisée lorsque /vmb, /vmg (Méthode de représentation) est sélectionné en tant que méthode de représentation. Ces options indiquent le modèle d'héritage de la définition de classe qui n'a pas encore été rencontrée.

/vmm
/vms
/vmv

Notes

Ces options sont décrites dans le tableau suivant.

Option

Description

/vmm

Spécifie la représentation la plus générale d'un pointeur vers un membre d'une classe comme devant être une représentation qui utilise l'héritage multiple.

Le mot clé d'héritage et l'argument correspondant à #pragma pointers_to_members est multiple_inheritance.

Cette représentation est plus large que celle qui est requise pour un héritage simple.

Si le modèle d'héritage d'une définition de classe pour laquelle est déclaré un pointeur vers un membre est de type virtuel, le compilateur génère une erreur.

/vms

Spécifie la représentation la plus générale d'un pointeur vers un membre d'une classe comme devant être une représentation qui soit n'utilise pas d'héritage, soit utilise un héritage simple.

Le mot clé d'héritage et l'argument correspondant à #pragma pointers_to_members est single_inheritance.

C'est la plus petite représentation possible d'un pointeur vers un membre d'une classe.

Si le modèle d'héritage d'une définition de classe pour laquelle est déclaré un pointeur vers un membre est de type multiple ou virtuel, le compilateur génère une erreur.

/vmv

Spécifie la représentation la plus générale d'un pointeur vers un membre d'une classe comme devant être une représentation qui utilise l'héritage virtuel. Elle ne génère jamais d'erreur et constitue l'option par défaut.

Le mot clé d'héritage et l'argument correspondant à #pragma pointers_to_members est virtual_inheritance.

Par rapport aux deux autres options, cette option requiert un pointeur plus large et du code supplémentaire pour interpréter le pointeur.

Lorsque vous spécifiez l'une de ces options de modèle d'héritage, le modèle en question est utilisé pour tous les pointeurs vers des membres de classe, indépendamment de leur type d'héritage ou du fait que le pointeur soit déclaré avant ou après la classe. Par conséquent, si vous utilisez toujours des classes d'héritage simple, vous pouvez réduire la taille du code en compilant avec l'option /vms ; cependant, si vous voulez utiliser le cas le plus général (au détriment de la représentation de données la plus générale), compilez avec l'option /vmv.

Pour définir cette option du compilateur dans l'environnement de développement Visual Studio

  1. Ouvrez la boîte de dialogue Pages de propriété du projet. Pour plus d'informations, consultez Comment : ouvrir les pages de propriétés d'un projet.

  2. Cliquez sur le dossier C/C++.

  3. Cliquez sur la page de propriétés Ligne de commande.

  4. Spécifiez l'option du compilateur dans la zone Options supplémentaires.

Pour définir cette option du compilateur par programme

Voir aussi

Référence

/vmb, /vmg (Méthode de représentation)

Options du compilateur

Définition des options du compilateur