/vmm, /vms, /vmv (reprezentace Pro obecné účely)

Používá se, pokud /vmg je vybrána jako metoda reprezentace. Tyto možnosti označují model dědičnosti definice třídy, která ještě nebyla zjištěna.

Syntax

/vmm
/vms
/vmv

Možnosti

/vmm
Určuje nejobecnější reprezentaci ukazatele na člen třídy jako ten, který používá více dědičnosti.

Odpovídající klíčové slovo dědičnosti a argument pro #pragma pointers_to_members je multiple_inheritance.

Tato reprezentace je větší než reprezentace požadovaná pro jednu dědičnost.

Pokud použijete /vmm a deklarujete ukazatel na člen třídy, která má model virtuální dědičnosti, kompilátor vygeneruje chybu.

/vms
Určuje nejobecnější reprezentaci ukazatele na člen třídy jako ten, který používá buď žádnou dědičnost, nebo jednoduchou dědičnost. Odpovídající klíčové slovo dědičnosti a argument pro #pragma pointers_to_members je single_inheritance.

Tato možnost generuje nejmenší možnou reprezentaci ukazatele na člen třídy.

Pokud použijete /vms a deklarujete ukazatel na člen třídy, která má model více nebo virtuální dědičnosti, kompilátor vygeneruje chybu.

/vmv
Určuje nejobecnější reprezentaci ukazatele na člena třídy jako ten, který používá virtuální dědičnost. Toto znázornění ukazatele nikdy nezpůsobí chybu a je výchozí.

Odpovídající klíčové slovo dědičnosti a argument pro #pragma pointers_to_members je virtual_inheritance.

Tato možnost vyžaduje větší ukazatel a více kódu pro interpretaci ukazatele než ostatní možnosti.

Poznámky

V sadě Visual Studio 2019 a starších verzích používá Microsoft pro typy ukazatelů na člen různé reprezentace (různých velikostí). Ukazatele na členy tříd, které nemají dědičnost nebo jednoduchou dědičnost, mají nejmenší reprezentaci. Ukazatele na členy tříd, které mají více dědičnosti, jsou větší. Největší jsou ukazatele na členy tříd, které mají virtuální dědičnost. Pokud kompilátor nezadá žádný model reprezentace, použije se ve výchozím nastavení největší a nejobecnější reprezentace.

Když zadáte jednu z těchto možností modelu dědičnosti, použije se tento model pro všechny ukazatele na členy třídy, bez ohledu na typ dědičnosti nebo bez ohledu na to, zda deklarujete ukazatel před nebo za třídou. Pokud vždy používáte třídy s jednoduchou dědičností, můžete zmenšit velikost kódu kompilací s /vms. Pokud ale chcete použít nejobecnější případ (na úkor největší reprezentace dat), zkompilujte je pomocí /vmvpříkazu .

Nastavení tohoto parametru kompilátoru ve vývojovém prostředí Visual Studio

  1. Otevřete dialogové okno Stránky vlastností projektu. Podrobnosti najdete v tématu Nastavení kompilátoru C++ a vlastností sestavení v sadě Visual Studio.

  2. Vyberte stránku vlastností> Vlastnosti konfiguraceC/C++>Příkazový řádek.

  3. Do pole Další možnosti zadejte možnost kompilátoru.

Programové nastavení tohoto parametru kompilátoru

Viz také

/vmb, /vmg (Metoda reprezentace)
Parametry kompilátoru MSVC
Syntaxe příkazového řádku kompilátoru MSVC