vtordisp
Określonego język C++
Kontroluje dodanie ukrytego członka przemieszczenia konstruktora/destruktora vtordisp.
#pragma vtordisp([push,] n)
#pragma vtordisp(pop)
#pragma vtordisp()
#pragma vtordisp([push,] {on | off})
Parametry
push
Umieszcza bieżące ustawienie vtordisp na wewnętrznym stosie kompilatora i ustawia nowe ustawienie vtordisp na n. Jeśli nie określono n, bieżące ustawienie vtordisp nie zostanie zmienione.pop
Usuwa górny rekord z wewnętrznego stosu kompilatora i przywraca ustawienie vtordisp na usuniętą wartość.n
Określa nową wartość dla ustawienia vtordisp.Możliwe wartości to 0, 1 lub 2, odpowiadające opcjom kompilatora /vd0, /vd1 i /vd2.Aby uzyskać więcej informacji, zobacz /vd (Wyłącz przemieszczanie konstrukcji).on
Równoważne do #pragma vtordisp(1).off
Równoważne do #pragma vtordisp(0).
Uwagi
Pragma vtordisp ma zastosowanie tylko do kodu, który korzysta z baz wirtualnych.Jeśli w klasie pochodnej przeciążono funkcję wirtualną, która jest dziedziczona z wirtualnej klasy podstawowej, oraz jeśli konstruktor lub destruktor klasy pochodnej wywołuje tą funkcję za pomocą wskaźnika do wirtualnej klasy podstawowej, kompilator może wprowadzić dodatkowe ukryte pola vtordisp do klas z bazami wirtualnymi.
Pragma vtordisp wpływa na układ klas, które po niej występują.Opcje /vd0, /vd1 i /vd2 określają takie samo zachowanie dla kompletnych modułów.Określenie 0 lub off powoduje pominięcie ukrytych członków vtordisp.Wyłącz vtordisp tylko jeśli nie istnieje żadna możliwość, aby konstruktory i destruktory klasy wywoływały funkcje wirtualne obiektu wskazywanego przez wskaźnik this.
Określenie 1 lub on, domyślnie, włącza ukrytych członków vtordisp, gdzie jest to niezbędne.
Określenie 2 włącza ukrytych członków vtordisp dla wszystkich baz wirtualnych z funkcjami wirtualnymi. vtordisp(2) może być niezbędne do zapewnienia prawidłowej wydajności dynamic_cast dla częściowo utworzonego obiektu.Aby uzyskać więcej informacji, zobacz Ostrzeżenie kompilatora (poziom 1) C4436.
#pragma vtordisp() bez argumentów przywraca ustawienie vtordisp do jego początkowego ustawienia.
#pragma vtordisp(push, 2)
class GetReal : virtual public VBase { ... };
#pragma vtordisp(pop)
KONIEC określonego języka C++