/vmm, /vms, /vmv (Representación de propósito general)

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

Se utiliza cuando se selecciona /vmb, /vmg (Método de representación) como método de representación. Estas opciones indican el modelo de herencia de la definición de clase aún no encontrada.

/vmm  
/vms  
/vmv  

Estas opciones se describen en la siguiente tabla.

OpciónDescripción
/vmmEspecifica la representación más general de un puntero a un miembro de una clase como aquella que utiliza herencia múltiple.

La palabra clave de herencia correspondiente y el argumento para #pragma pointers_to_members es multiple_inheritance.

Esta representación es de mayor tamaño que la requerida para la herencia simple.

Si el modelo de herencia de una definición de clase para la que se declara un puntero a un miembro es virtual, el compilador genera un error.
/vmsEspecifica la representación más general de un puntero a un miembro de una clase como aquella que no utiliza herencia múltiple ni herencia simple.

La palabra clave de herencia correspondiente y el argumento para #pragma pointers_to_members es single_inheritance.

Ésta es la representación más pequeña posible de un puntero a un miembro de una clase.

Si el modelo de herencia de una definición de clase para la que se declara un puntero a un miembro es múltiple o virtual, el compilador genera un error.
/vmvEspecifica la representación más general de un puntero a un miembro de una clase como aquella que utiliza herencia virtual. Nunca causa un error y es el valor predeterminado.

La palabra clave de herencia correspondiente y el argumento para #pragma pointers_to_members es virtual_inheritance.

Esta opción requiere un puntero de mayor tamaño que las otras opciones, así como código adicional para interpretar el puntero.

Si especifica una de estas opciones de modelo de herencia, se utiliza el modelo seleccionado para todos los punteros de miembros de clase, con independencia de su tipo de herencia o de si el puntero se declara antes o después que la clase. Por lo tanto, si siempre utiliza clases de herencia simple, puede reducir el tamaño del código utilizando la opción /vms para compilar; no obstante, si desea utilizar el caso más general (a expensas de una representación de datos de tamaño más grande), compile con la opción /vmv.

Para establecer esta opción del compilador en el entorno de desarrollo de Visual Studio

  1. Abra el cuadro de diálogo Páginas de propiedades del proyecto. Para obtener información detallada, vea Cómo: Abrir páginas de propiedades del proyecto.

  2. Haga clic en la carpeta C/C++.

  3. Haga clic en la página de propiedades Línea de comandos.

  4. Escriba la opción del compilador en el cuadro Opciones adicionales.

Para establecer esta opción del compilador mediante programación

/vmb, /vmg (Método de representación)
Opciones del compilador
Establecer las opciones del compilador

Mostrar: