Condividi tramite


pointers_to_members

C++ specifica

Specifica se un puntatore A un membro di classe può essere dichiarata prima della definizione della classe associata e viene utilizzato per controllare la dimensione del puntatore e il codice necessari per interpretare il puntatore.

#pragma pointers_to_members( pointer-declaration, [most-general-representation] )

Note

È possibile inserire un oggetto pointers_to_members pragma nel file di origine come alternativa a l /vmx opzioni del compilatore o parole chiave di ereditarietà.

puntatore-dichiarazione l'argomento indica se è stato dichiarato un puntatore a un membro prima o dopo la definizione di funzione associata.puntatore-dichiarazione l'argomento è uno dei seguenti due simboli:

Argomento

Commenti

full_generality

Genera codice sicuro e talvolta nonoptimal.Utilizzare full_generality se un puntatore a un membro è dichiarata prima della definizione della classe associata.Questo argomento contiene sempre la rappresentazione del puntatore specificata da più-generale-rappresentazione argomento.equivalente a /vmg.

best_case

Genera codice sicuro e ottimale utilizzando la rappresentazione del caso migliore per i puntatori ai membri.Requires che definisce la classe prima della dichiarazione di puntatore a un membro della classe.l'impostazione predefinita è best_case.

più-generale-rappresentazione l'argomento indica la più piccola rappresentazione del puntatore che il compilatore possa utilizzare in modo sicuro per fare riferimento a un puntatore A un membro di una classe in un'unità di conversione.L'argomento può essere:

Argomento

Commenti

single_inheritance

La rappresentazione più generale è singolo-ereditarietà, puntatore a una funzione membro.Genera un errore se il modello di ereditarietà della definizione della classe per il quale un puntatore a un membro è dichiarato è mai più o virtuale.

multiple_inheritance

La rappresentazione più generale è ereditarietà multipla, puntatore a una funzione membro.Genera un errore se il modello di ereditarietà della definizione della classe per il quale un puntatore a un membro viene dichiarato virtuale.

virtual_inheritance

La rappresentazione più generale è virtuale-ereditarietà, puntatore a una funzione membro.non causa mai un errore.Si tratta dell'argomento predefinito quando pointers_to_members #pragma (full_generality) viene utilizzato.

Nota di avvisoAttenzione

Si consiglia di inserire pointers_to_members pragma solo nel file di codice sorgente che si desidera modificare e solo dopo qualsiasi #include direttive.Questa pratica diminuisce il rischio che il pragma influirà su altri file e specificati accidentalmente più definizioni per la stessa variabile, funzione, o nome della classe.

Esempio

//   Specify single-inheritance only
#pragma pointers_to_members( full_generality, single_inheritance )

Vedere anche

Riferimenti

Direttive pragma e la parola chiave di __Pragma