Compartir a través de


pointers_to_members

específico de C++

Especifica si un puntero a un miembro de clase se puede declarar antes de la definición de clase asociados y se utiliza para controlar el tamaño de puntero y el código de interpretar el puntero.

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

Comentarios

Puede colocar un pragma de pointers_to_members en el archivo de código fuente como alternativa al uso de las opciones del compilador de /vmx o palabras clave de herencia.

El argumento de la puntero-declaración especifica si se ha declarado un puntero a un miembro antes o después de la definición de función asociado.el argumento de la puntero- declaración es uno de los dos símbolos siguientes:

Argumento

Comentarios

full_generality

genera código seguro, a veces nonoptimal.Utiliza full_generality si cualquier puntero a miembro se declara antes de la definición de clase asociada.Este argumento siempre usa la representación de puntero especificada por el argumento de la más-general-representación .equivalente a /vmg.

best_case

Genera código seguro, óptimo mediante la representación de mejor caso para todos los punteros a miembros.Requiere que define la clase antes de declarar un puntero a un miembro de la clase.El valor predeterminado es best_case.

El argumento de la más-general-representación especifica la representación más pequeña de puntero que el compilador puede utilizar con seguridad para hacer referencia a cualquier puntero a un miembro de una clase en una unidad de traducción.El argumento puede ser:

Argumento

Comentarios

single_inheritance

La representación más general es la solo-herencia, puntero a una función miembro.Produce un error si el modelo de herencia de una definición de clase para la que un puntero a un miembro se declare es nunca múltiple o virtual.

multiple_inheritance

La representación más general es la herencia múltiple, puntero a una función miembro.Produce un error si el modelo de herencia de una definición de clase para la que un puntero a un miembro se declare es virtual.

virtual_inheritance

La representación más general es la virtual-herencia, puntero a una función miembro.Nunca se produce un error.éste es el argumento predeterminado cuando se utiliza pointers_to_members #pragma (full_generality) .

Nota de precauciónPrecaución

Le aconsejamos para colocar el pragma de pointers_to_members únicamente en el archivo de código fuente que desea que afecte, y sólo después de cualquier directiva de #include .Esta práctica aminora el riesgo de que el pragma afectará a otros archivos, y que especificará accidentalmente varias definiciones para la misma variable, función, o nombre de clase.

Ejemplo

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

Vea también

Referencia

Directivas de pragma y la palabra clave de __Pragma