pointers_to_members

Konkrétní C++

Určuje, zda ukazatel na člen třídy lze deklarovat před jeho definice přidruženou třídou a řídí velikost ukazatele a kód požadované interpretovat ukazatele.

#pragma pointers_to_members( pointer-declaration, [most-general-representation] )

Poznámky

Můžete umístit pointers_to_members pragma v souboru zdroje jako alternativu k použití /vmx volby kompilátoru nebo dědičnost klíčová slova.

Prohlášení ukazatel argument určuje, zda deklarujete ukazatel na člena před nebo po definice související funkce.Prohlášení ukazatel argument je jedním z následujících dvou symbolů:

Argument

Komentáře

full_generality

Generuje kód bezpečného, někdy nonoptimal.Pomocí full_generality -li všechny ukazatele člen je deklarovaný před definice přidružené třídy.Tento argument se vždy používá ukazatel zastoupení určený většinu obecné zastoupení argument.Ekvivalent /vmg.

best_case

Generuje kód bezpečného, optimální použití nejlepší znázornění pro všechny ukazatele členům.Vyžaduje definování třídy před deklarování ukazatel na člena třídy.Výchozí hodnota je best_case.

Většinu obecné zastoupení argument určuje nejmenší ukazatel zastoupení, bezpečně kompilátoru můžete odkazovat na žádné ukazatele členem třídy v jednotce překlad.Argument může být následující:

Argument

Komentáře

single_inheritance

Nejobecnější reprezentace je jediný dědičnosti, ukazatel členské funkce.Pokud model dědičnosti definice třídy, pro které je deklarována jako ukazatel na člena je někdy buď způsobuje chybu více nebo virtuální.

multiple_inheritance

Nejobecnější reprezentace je více dědičnosti, ukazatel členské funkce.Pokud je virtuální model dědičnosti definice třídy, pro které je ukazatel na člen deklarován způsobí chybu.

virtual_inheritance

Nejobecnější reprezentace je virtuální dědičnosti, ukazatel členské funkce.Nikdy způsobí chybu.Toto je výchozí argument při pointers_to_members(full_generality) # pragma se používá.

Poznámka k upozorněníUpozornění

Jsme radit můžete umístit pointers_to_members pragma pouze ve zdrojovém souboru kód, který chcete ovlivnit a pouze po žádné #include směrnic.Tato praxe snížíte riziko, že pragma ovlivní ostatní soubory a bude náhodou zadat více definic pro stejné proměnné, funkce nebo název třídy.

Příklad

//   Specify single-inheritance only
#pragma pointers_to_members( full_generality, single_inheritance )

Viz také

Referenční dokumentace

Pragma směrnic a __Pragma klíčové slovo