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á. |
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 )