Поделиться через


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

Используется при /vmg выборе в качестве метода представления. Эти параметры указывают модель наследования определения класса, не встречающегося.

Синтаксис

/vmm
/vms
/vmv

Параметры

/vmm
Указывает наиболее общее представление указателя на член класса в качестве одного из них, использующего несколько наследование.

Соответствующее ключевое слово наследования и аргумент#pragma pointers_to_members.multiple_inheritance

Это представление больше, чем необходимо для одного наследования.

Если вы используете /vmm и объявляете указатель на член класса с виртуальной моделью наследования, компилятор создает ошибку.

/vms
Указывает наиболее общее представление указателя на член класса, который не использует наследование или одно наследование. Соответствующее ключевое слово наследования и аргумент#pragma pointers_to_members.single_inheritance

Этот параметр создает наименьшее возможное представление указателя на член класса.

Если вы используете /vms и объявляете указатель на член класса с несколькими или виртуальными моделью наследования, компилятор создает ошибку.

/vmv
Указывает наиболее общее представление указателя на член класса в качестве одного из них, использующего виртуальное наследование. Это представление указателя никогда не приводит к ошибке и является значением по умолчанию.

Соответствующее ключевое слово наследования и аргумент#pragma pointers_to_members.virtual_inheritance

Для этого параметра требуется более крупный указатель и больше кода для интерпретации указателя, чем другие параметры.

Замечания

В Visual Studio 2019 и более ранних версиях корпорация Майкрософт использует различные представления (разные размеры) для типов указателей на члены. Указатели на члены классов, у которых нет наследования или одно наследование, имеют наименьшее представление. Указатели на члены классов с несколькими наследованиеми больше. Указатели на члены классов с виртуальным наследованием являются самыми большими. Если для компилятора не указана модель представления, по умолчанию используется наибольшее общее представление.

При указании одного из этих вариантов модели наследования эта модель используется для всех указателей на члены класса, независимо от типа наследования или объявления указателя до или после класса. Если вы всегда используете классы с одним наследованием, можно уменьшить размер кода, скомпилируя с /vmsпомощью . Однако если вы хотите использовать наиболее общий случай (за счет наибольшего представления данных), скомпилируйте с /vmvпомощью .

Установка данного параметра компилятора в среде разработки Visual Studio

  1. Откройте диалоговое окно Страницы свойств проекта. Подробнее см. в статье Настройка компилятора C++ и свойства сборки в Visual Studio.

  2. Перейдите на страницу свойств Свойства конфигурации>C/C++>Командная строка.

  3. Введите параметр компилятора в поле "Дополнительные параметры ".

Установка данного параметра компилятора программным способом

См. также

/vmb, /vmg (метод Представления)
Параметры компилятора MSVC
Синтаксис командной строки компилятора MSVC