/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.
Le mot clé et l’argument d’héritage correspondants sont #pragma pointers_to_members
multiple_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. Le mot clé et l’argument d’héritage correspondants sont #pragma pointers_to_members
single_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.
Le mot clé et l’argument d’héritage correspondants sont #pragma pointers_to_members
virtual_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
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.
Sélectionnez la page de propriétés Propriétés de configuration>C/C++>Ligne de commande.
Entrez l’option du compilateur dans la zone Options supplémentaires.
Pour définir cette option du compilateur par programmation
- Consultez AdditionalOptions.
Voir aussi
/vmb
, /vmg
(méthode Representation)
Options du compilateur MSVC
Syntaxe de ligne de commande du compilateur MSVC