Udostępnij za pośrednictwem


pointers_to_members

Szczególne C++

Określa, czy wskaźnik do członka klasy mogą być deklarowane przed jego definicję skojarzonej klasy i jest używana do kontroli rozmiaru wskaźnika i kodu wymaganych do interpretacji wskaźnik.

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

Uwagi

Można umieścić pointers_to_members pragmy w pliku źródłowego, jako alternatywa do korzystania z /vmx opcje kompilatora lub słowa kluczowe dziedziczenie.

Wskaźnik deklaracji argument określa, czy zadeklarowały wskaźnik do elementu członkowskiego przed lub po definicji funkcji skojarzone.Wskaźnik deklaracji argument jest jedną z dwóch następujących symboli:

Argument

Komentarze

full_generality

Generuje kod bezpieczne, czasami nonoptimal.Za pomocą full_generality jeżeli zadeklarowano każdy wskaźnik do elementu członkowskiego przed definicji klasy skojarzone.Ten argument jest zawsze używa reprezentacji wskaźnik określonej przez większość ogólne reprezentacja argument.Odpowiednik /vmg.

best_case

Generuje bezpieczne optymalnego kodu za pomocą optymistycznych reprezentacji dla wszystkich wskaźników do członków.Wymaga, Definiowanie klasy przed deklarowanie wskaźnik do elementu członkowskiego tej klasy.Wartością domyślną jest best_case.

Większość ogólne reprezentacja argument określa najmniejszą reprezentacja wskaźnik kompilator może bezpiecznie korzystać z Aby odwołać się za każdy wskaźnik, aby członek klasy w jednostce tłumaczenia.Argument może być jedną z następujących czynności:

Argument

Komentarze

single_inheritance

Reprezentacja najbardziej ogólnym jest pojedynczym dziedziczenie, wskaźnik do funkcji składowej.Powoduje błąd, jeśli model dziedziczenia z definicji klasy, do której zgłaszane jest wskaźnik do elementu członkowskiego jest kiedykolwiek albo wielu lub wirtualna.

multiple_inheritance

Reprezentacja najbardziej ogólnym jest wielu dziedziczenie, wskaźnik do funkcji składowej.Powoduje błąd, jeśli model dziedziczenia z definicji klasy, do której zgłaszane jest wskaźnik do elementu członkowskiego jest wirtualna.

virtual_inheritance

Reprezentacja najbardziej ogólnym jest wirtualny dziedziczenie, wskaźnik do funkcji składowej.Nigdy nie spowoduje wystąpienie błędu.Jest to argument domyślny podczas pointers_to_members(full_generality) # pragma jest używana.

Informacje dotyczące przestrogiPrzestroga

Radzimy umieścić pointers_to_members pragma tylko w pliku kod źródłowy, który ma wpływ na i po dowolnym #include dyrektyw.Praktyka ta rozluźnia ryzyko, że pragma wpłynie na inne pliki i która zostanie przypadkowo można określić wiele definicji dla tej samej zmiennej, funkcji lub nazwy klasy.

Przykład

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

Zobacz też

Informacje

Dyrektywy pragma i __Pragma słowa kluczowego