pointers_to_members
Détail C++
Spécifie si un pointeur vers un membre de classe peut être déclaré avant sa définition de classe associée et sert à contrôler la taille du pointeur et le code requis pour interpréter le pointeur.
#pragma pointers_to_members( pointer-declaration, [most-general-representation] )
Notes
Vous pouvez placer un pragma de pointers_to_members dans votre fichier source plutôt que d'utiliser les options du compilateur de /vmx ou le mots clés d'héritage.
L'argument de pointeur-déclaration spécifie si vous avez défini un pointeur vers un membre avant ou après la définition de fonction associée.L'argument de pointeur-déclaration est l'un des symboles suivants :
Argument |
Commentaires |
---|---|
full_generality |
Génère le coffre-fort, le code parfois nonoptimal.Vous utilisez full_generality si un pointeur vers un membre est déclaré avant la définition de classe associée.cet argument utilise toujours la représentation de pointeur spécifiée par l'argument de plus-général- représentation .équivalent à /vmg. |
best_case |
Génère le coffre-fort, le code optimal l'utilisation inconsidérée de génère pour tous les pointeurs vers des membres.Requiert définir la classe avant de déclarer un pointeur vers un membre de la classe.la valeur par défaut est best_case. |
L'argument de plus-général-représentation spécifie la plus petite représentation de pointeur que le compilateur peut sans risque utiliser pour référencer un pointeur vers un membre d'une classe dans une unité de traduction.L'argument peut être l'un des éléments suivants :
Argument |
Commentaires |
---|---|
single_inheritance |
Des performances plus générale est l'unique-héritage, pointeur vers une fonction membre.Génère une erreur si le modèle d'héritage d'une définition de classe pour laquelle un pointeur vers un membre est déclaré est jamais plusieurs ou virtuel. |
multiple_inheritance |
Des performances plus générale est l'héritage multiple, pointeur vers une fonction membre.Génère une erreur si le modèle d'héritage d'une définition de classe pour laquelle un pointeur vers un membre est déclaré est virtuel. |
virtual_inheritance |
Des performances plus générale est le virtuel-héritage, pointeur vers une fonction membre.N'entraîne jamais une erreur.Il s'agit de l'argument par défaut lorsque pointers_to_members #pragma (full_generality) est utilisé. |
Attention |
---|
Nous vous recommandons de mettre le pragma d' pointers_to_members uniquement dans le fichier de code source que vous souhaitez assigner, et uniquement après toutes les directives d' #include .Cette pratique diminue le risque que le pragma affecte d'autres fichiers, et que vous spécifierez par erreur plusieurs définitions pour la même variable, fonction, ou nom de classe. |
Exemple
// Specify single-inheritance only
#pragma pointers_to_members( full_generality, single_inheritance )