Udostępnij za pośrednictwem


/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

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

  2. Wybierz stronę Właściwości>konfiguracji C/C++>Wiersza polecenia.

  3. Wprowadź opcję kompilatora w polu Dodatkowe opcje .

Aby programowo ustawić tę opcję kompilatora

Zobacz też

Opcje kompilatora MSVC
Składnia wiersza polecenia kompilatora MSVC