Share via


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

Utilisé quand /vmg il est sélectionné comme méthode de représentation. Ces options indiquent le modèle d’héritage de la définition de classe non encore rencontrée.

Syntaxe

/vmm
/vms
/vmv

Options

/vmm
Spécifie la représentation la plus générale d’un pointeur vers un membre d’une classe comme un élément qui utilise plusieurs héritages.

L’héritage correspondant mot clé et l’argument à .#pragma pointers_to_membersmultiple_inheritance

Cette représentation est supérieure à celle requise pour l’héritage unique.

Si vous utilisez /vmm et déclarez un pointeur vers un membre d’une classe qui a un modèle d’héritage 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 en tant qu’un élément qui n’utilise pas d’héritage ou d’héritage unique. L’héritage correspondant mot clé et l’argument à .#pragma pointers_to_memberssingle_inheritance

Cette option génère la plus petite représentation possible d’un pointeur vers un membre d’une classe.

Si vous utilisez /vms et déclarez un pointeur vers un membre d’une classe qui a un modèle d’héritage 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 en tant qu’élément qui utilise l’héritage virtuel. Cette représentation de pointeur ne provoque jamais d’erreur et est la valeur par défaut.

L’héritage correspondant mot clé et l’argument à .#pragma pointers_to_membersvirtual_inheritance

Cette option nécessite un pointeur plus grand et plus de code pour interpréter le pointeur que les autres options.

Notes

Dans Visual Studio 2019 et versions antérieures, Microsoft utilise différentes représentations (de tailles différentes) pour les types pointeur à membre. Les pointeurs vers les membres de classes qui n’ont pas d’héritage ou d’héritage unique ont la plus petite représentation. Les pointeurs vers les membres de classes qui ont plusieurs héritages sont plus volumineux. Les pointeurs vers les membres de classes qui ont un héritage virtuel sont les plus importants. Lorsqu’aucun modèle de représentation n’est spécifié au compilateur, il utilise par défaut la représentation la plus grande et la plus générale.

Lorsque vous spécifiez l’une de ces options de modèle d’héritage, ce modèle est utilisé pour tous les pointeurs vers les membres de classe, quel que soit leur type d’héritage ou si vous déclarez le pointeur avant ou après la classe. Si vous utilisez toujours des classes d’héritage unique, vous pouvez réduire la taille du code en compilez avec /vms. Toutefois, si vous souhaitez utiliser le cas le plus général (au détriment de la plus grande représentation des données), compilez avec /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 Définir le compilateur C++ et les propriétés de build dans Visual Studio.

  2. Sélectionnez la page de propriétés Propriétés de configuration>C/C++>Ligne de commande.

  3. Entrez l’option du compilateur dans la zone Options supplémentaires.

Pour définir cette option du compilateur par programmation

Voir aussi

/vmb, /vmg (méthode Representation)
Options du compilateur MSVC
Syntaxe de ligne de commande du compilateur MSVC