/vmm, /vms и /vmv (представление общего назначения)/vmm, /vms, /vmv (General Purpose Representation)

Используется, если в качестве метода представлениявыбран метод /VMB,/vmg (представление) .Used when /vmb, /vmg (Representation Method) is selected as the representation method. Эти параметры указывают модель наследования определения класса, который еще не обнаружен.These options indicate the inheritance model of the not-yet-encountered class definition.

СинтаксисSyntax

/vmm
/vms
/vmv

RemarksRemarks

Данные параметры описаны в следующей таблице.The options are described in the following table.

ПараметрOption ОписаниеDescription
/VMM/vmm Задает наиболее общее представление указателя на член класса, который использует множественное наследование.Specifies the most general representation of a pointer to a member of a class to be one that uses multiple inheritance.

Соответствующее ключевое слово и аргумент наследования для #pragma pointers_to_members multiple_inheritance.The corresponding inheritance keyword and argument to #pragma pointers_to_members is multiple_inheritance.

Это представление больше, чем требуется для одиночного наследования.This representation is larger than that required for single inheritance.

Если модель наследования определения класса, для которой объявлен указатель на член, является виртуальной, компилятор выдает ошибку.If the inheritance model of a class definition for which a pointer to a member is declared is virtual, the compiler generates an error.
/VMS/vms Задает наиболее общее представление указателя на член класса, который не использует наследование или одиночное наследование.Specifies the most general representation of a pointer to a member of a class to be one that uses either no inheritance or single inheritance.

Соответствующее ключевое слово и аргумент наследования для #pragma pointers_to_members single_inheritance.The corresponding inheritance keyword and argument to #pragma pointers_to_members is single_inheritance.

Это наименьшее возможное представление указателя на член класса.This is the smallest possible representation of a pointer to a member of a class.

Если модель наследования определения класса, для которой объявлен указатель на член, является несколько или виртуальная, компилятор выдает ошибку.If the inheritance model of a class definition for which a pointer to a member is declared is multiple or virtual, the compiler generates an error.
/vmv/vmv Задает наиболее общее представление указателя на член класса в качестве одного из них, использующего виртуальное наследование.Specifies the most general representation of a pointer to a member of a class to be one that uses virtual inheritance. Он никогда не вызывает ошибку и является значением по умолчанию.It never causes an error and is the default.

Соответствующее ключевое слово и аргумент наследования для #pragma pointers_to_members virtual_inheritance.The corresponding inheritance keyword and argument to #pragma pointers_to_members is virtual_inheritance.

Для этого параметра требуется больший указатель и дополнительный код для интерпретации указателя, а не других параметров.This option requires a larger pointer and additional code to interpret the pointer than the other options.

При указании одного из этих параметров модели наследования эта модель используется для всех указателей на члены класса, независимо от типа наследования или от того, объявлен ли указатель до или после класса.When you specify one of these inheritance-model options, that model is used for all pointers to class members, regardless of their inheritance type or whether the pointer is declared before or after the class. Таким образом, если всегда используются классы с одним наследованием, размер кода можно сократить путем компиляции с помощью /VMS; Однако если вы хотите использовать наиболее общий вариант (с учетом наибольшего представления данных), скомпилируйте его с помощью /vmv.Therefore, if you always use single-inheritance classes, you can reduce code size by compiling with /vms; however, if you want to use the most general case (at the expense of the largest data representation), compile with /vmv.

Установка данного параметра компилятора в среде разработки Visual StudioTo set this compiler option in the Visual Studio development environment

  1. Откройте диалоговое окно Страницы свойств проекта.Open the project's Property Pages dialog box. Подробнее см. в статье Настройка компилятора C++ и свойства сборки в Visual Studio.For details, see Set C++ compiler and build properties in Visual Studio.

  2. Откройте папку C/C++ .Click the C/C++ folder.

  3. Выберите страницу свойств Командная строка .Click the Command Line property page.

  4. Введите параметр компилятора в поле Дополнительные параметры .Type the compiler option in the Additional Options box.

Установка данного параметра компилятора программным способомTo set this compiler option programmatically

См. также разделSee also

/VMB,/vmg (метод представления)/vmb, /vmg (Representation Method)
Параметры компилятора MSVCMSVC Compiler Options
Синтаксис Command-Line компилятора КОМПИЛЯТОРОМ MSVCMSVC Compiler Command-Line Syntax