Sdílet prostřednictvím


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

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

Syntaxe

/vmm
/vms
/vmv

Možnosti

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

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

Tato reprezentace je větší než ta, která se vyžaduje 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, který nepoužívá dědičnost ani jedinou dědičnost. Odpovídající klíčové slovo dědičnosti a argument je single_inheritance#pragma pointers_to_members .

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

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

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

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

Tato možnost vyžaduje větší ukazatel a více kódu k 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 členy různé reprezentace (různých velikostí). Ukazatele na členy tříd, které nemají dědičnost nebo jedinou dědičnost, mají nejmenší reprezentaci. Ukazatele na členy tříd, které mají více dědičnosti, jsou větší. Ukazatele na členy tříd, které mají virtuální dědičnost, jsou největší. Pokud kompilátoru nezadáte žá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, tento model se použije pro všechny ukazatele na členy třídy, bez ohledu na jejich typ dědičnosti nebo zda deklarujete ukazatel před nebo za třídou. Pokud vždy používáte třídy s jednou dědičností, můžete zmenšit velikost kódu kompilováním pomocí /vms. Pokud však chcete použít nejobecnější případ (na úkor největší reprezentace dat), zkompilujte s /vmv.

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í příkazového řádku C/C++>Vlastnosti>konfigurace.

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

Programové nastavení tohoto parametru kompilátoru

Viz také

/vmb, /vmg (metoda reprezentace)
Možnosti kompilátoru MSVC
Syntaxe příkazového řádku kompilátoru MSVC