Partager via


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é.

Mise en gardeAttention

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 )

Voir aussi

Référence

Directives pragma et le mot clé de __Pragma