/vmm, /vms и /vmv (представление общего назначения)
Используется, если /vmb, /vmg (метод представления) выбран в качестве метода представления. Эти параметры указывают модель наследования для определения класса, которое еще не обнаружено.
/vmm
/vms
/vmv
Заметки
Данные параметры описаны в следующей таблице.
Параметр |
Описание |
---|---|
/vmm |
Задает в качестве наиболее общего представления указателя на член класса представление, в котором используется множественное наследование. Соответствующим ключевым словом наследования и аргументом для #pragma pointers_to_members является multiple_inheritance. Размер этого представления больше, чем у представления, необходимого для одиночного наследования. Если модель наследования определения класса, для которой объявлен указатель на член класса, является виртуальной, то компилятор создаст ошибку. |
/vms |
Задает в качестве наиболее общего представления указателя на член класса представление, в котором наследование не используется или используется одиночное наследование. Соответствующим ключевым словом наследования и аргументом для #pragma pointers_to_members является single_inheritance. Это наименьшее возможное представление указателя на член класса. Если модель наследования определения класса, для которой объявлен указатель на член класса, является множественной или виртуальной, то компилятор создаст ошибку. |
/vmv |
Задает в качестве наиболее общего представления указателя на член класса представление, в котором используется виртуальное наследование. В этом случае ошибка никогда не возникает. Данное представление является представлением по умолчанию. Соответствующим ключевым словом наследования и аргументом для #pragma pointers_to_members является virtual_inheritance. По сравнению с другими параметрами для этого параметра требуются более крупные указатели и дополнительный код для интерпретации указателей. |
При задании одного из описанных выше параметров модели наследования выбранная модель используется для всех указателей на члены класса вне зависимости от их типа наследования и того, объявлен указатель до или после класса. Таким образом, если всегда используются классы с одиночным наследованием, то размер кода можно уменьшить путем компиляции с параметром /vms. В то же время, если требуется использовать самый общий случай (за счет максимально объемного представления данных), следует компилировать код с параметром /vmv.
Установка параметра компилятора в среде разработки Visual Studio
Откройте диалоговое окно Страницы свойств проекта. Дополнительные сведения см. в разделе Открытие свойств страниц проекта.
Откройте папку C/C++.
Выберите страницу свойств Командная строка.
Введите параметр компилятора в поле Дополнительные параметры.
Установка данного параметра компилятора программным способом
- См. раздел AdditionalOptions.