/vd (Wyłącz przemieszczanie konstrukcji)
Składnia
/vdn
Argumenty
0
Pomija składową przemieszczenia konstruktora/destruktora vtordisp. Wybierz tę opcję tylko wtedy, gdy masz pewność, że wszystkie konstruktory klas i destruktory praktycznie wywołają funkcje wirtualne.
1
Umożliwia tworzenie ukrytych składowych przemieszczania/destruktora vtordisp. Ten wybór jest domyślny.
2
Umożliwia użycie operatora dynamic_cast na konstruowaniu obiektu. Na przykład dynamic_cast z wirtualnej klasy bazowej do klasy pochodnej.
/vd2 dodaje pole vtordisp, gdy masz bazę wirtualną z funkcjami wirtualnymi. /vd1 powinien być wystarczający. Najczęstszym przypadkiem, w którym /vd2 jest konieczne, jest to, że jedyną funkcją wirtualną w bazie wirtualnej jest destruktor.
Uwagi
Te opcje dotyczą tylko kodu C++, który używa baz wirtualnych.
Visual C++ implementuje obsługę przemieszczania konstrukcji języka C++ w sytuacjach, w których jest używane dziedziczenie wirtualne. Przemieszczanie konstrukcji rozwiązuje problem utworzony, gdy funkcja wirtualna zadeklarowana w bazie wirtualnej i przesłonięta w klasie pochodnej jest wywoływana z konstruktora podczas budowy kolejnej klasy pochodnej.
Problem polega na tym, że funkcja wirtualna może zostać przekazana niepoprawnym this
wskaźnikiem w wyniku rozbieżności między przemieszczeniami do wirtualnych baz klasy a przemieszczeniami do jej klas pochodnych. Rozwiązanie zapewnia pojedynczą korektę przemieszczenia konstrukcji o nazwie pole vtordisp dla każdej wirtualnej bazy klasy.
Domyślnie pola vtordisp są wprowadzane za każdym razem, gdy kod definiuje konstruktory i destruktory zdefiniowane przez użytkownika, a także zastępuje funkcje wirtualne baz wirtualnych.
Te opcje mają wpływ na całe pliki źródłowe. Użyj narzędzia vtordisp , aby pominąć, a następnie ponownie włączyć pola vtordisp na podstawie klas po klasie.
Aby ustawić tę opcję kompilatora w środowisku programowania Visual Studio
Otwórz okno dialogowe Strony właściwości projektu. Aby uzyskać szczegółowe informacje, zobacz Set C++ compiler and build properties in Visual Studio (Ustawianie właściwości kompilatora języka C++ i kompilowania w programie Visual Studio).
Wybierz stronę Właściwości>konfiguracji C/C++>Wiersza polecenia.
Wprowadź opcję kompilatora w polu Dodatkowe opcje .
Aby programowo ustawić tę opcję kompilatora
- Zobacz: AdditionalOptions.
Zobacz też
Opcje kompilatora MSVC
Składnia wiersza polecenia kompilatora MSVC