/vd (Zakázat posunutí konstrukcí)
/vdn
Arguments
0
Potlačí členské vtordisp konstruktor/destruktor přestavění.Vyberte tuto možnost pouze v případě, že jste si jisti, že všechny třídy konstruktory a destruktory volání virtuální funkce prakticky.1
Umožňuje vytváření skryté vtordisp konstruktor/destruktor přestavění členů.Tato volba je výchozí.2
Umožňuje použít dynamic_cast – operátor na objekt nevytváří.Například, dynamic_cast z virtuální základní třídy odvozené třídy./vd2Přidá pole vtordisp, pokud máte virtuální base s virtuální funkce./vd1by mělo stačit.Nejběžnější případ, kde /vd2 je nezbytné je pouze virtuální funkce v základním virtuální destruktor.
Poznámky
Tyto možnosti platí pouze pro kód jazyka C++, který používá virtuální základny.
Visual C++implementuje podporu přestavění C++ konstrukce v situacích, kde je použit virtuální dědičnost.Konstrukce posuvy vyřešen vytvořen, pokud je virtuální funkce deklarována virtuální databáze a přepsání v odvozené třídě, se nazývá z konstruktor během výstavby další odvozené třídy.
Problém je, že virtuální funkce mohou být předány nesprávné this ukazatel v důsledku nesrovnalostí mezi posuvy na virtuální základy třída a posuvy na odvozených tříd.Řešení obsahuje jednu konstrukci přestavění úpravy, jen vtordisp pole pro každý virtuální základní třídy.
Ve výchozím nastavení jsou zavedeny vtordisp pole vždy, když kód definuje vlastní konstruktory a destruktory a také přepsání virtuální funkce virtuální základů.
Tyto možnosti ovlivní celý zdrojové soubory.Použití vtordisp k potlačení a znovu povolit pole vtordisp na základě třídy třídy.
Chcete-li nastavit tuto možnost kompilátoru ve vývojovém prostředí Visual Studio
Otevřete dialogové okno projektu Stránky vlastností.Další informace naleznete v tématu Postupy: Otevření stránek vlastností projektu.
Klikněte na složku C/C++.
Klikněte na stránku vlastností Příkazový řádek.
Zadejte možnost kompilátoru do pole Další možnosti.
Chcete-li tuto možnost kompilátoru nastavit v programu
- Další informace naleznete v tématu AdditionalOptions.