/vd (Disabilita spostamenti costruttori)
Sintassi
/vdn
Argomenti
0
Elimina il membro di spostamento del costruttore/distruttore vtordisp. Scegliere questa opzione solo se si è certi che tutti i costruttori e i distruttori di classe chiamano virtualmente le funzioni virtuali.
1
Abilita la creazione di membri di spostamento del costruttore/distruttore vtordisp nascosti. Questa scelta è l'impostazione predefinita.
2
Consente di usare dynamic_cast Operator su un oggetto da costruire. Ad esempio, un dynamic_cast da una classe di base virtuale a una classe derivata.
/vd2 aggiunge un campo vtordisp quando si dispone di una base virtuale con funzioni virtuali. /vd1 deve essere sufficiente. Il caso più comune in cui /vd2 è necessario è quando l'unica funzione virtuale nella base virtuale è un distruttore.
Osservazioni:
Queste opzioni si applicano solo al codice C++ che usa le basi virtuali.
Visual C++ implementa il supporto per lo spostamento di costruzione C++ in situazioni in cui viene usata l'ereditarietà virtuale. Gli spostamenti di costruzione risolvono il problema creato quando una funzione virtuale, dichiarata in una base virtuale e sottoposta a override in una classe derivata, viene chiamata da un costruttore durante la costruzione di un'ulteriore classe derivata.
Il problema è che la funzione virtuale può essere passata a un puntatore non corretto this
a causa di discrepanze tra gli spostamenti alle basi virtuali di una classe e gli spostamenti alle relative classi derivate. La soluzione fornisce una singola regolazione dello spostamento della costruzione, denominata campo vtordisp, per ogni base virtuale di una classe.
Per impostazione predefinita, i campi vtordisp vengono introdotti ogni volta che il codice definisce costruttori e distruttori definiti dall'utente ed esegue anche l'override delle funzioni virtuali delle basi virtuali.
Queste opzioni influiscono su interi file di origine. Usare vtordisp per eliminare e riabilitare i campi vtordisp in base alla classe.
Per impostare l'opzione del compilatore nell'ambiente di sviluppo di Visual Studio
Aprire la finestra di dialogo Pagine delle proprietà del progetto. Per informazioni dettagliate, vedere Impostare il compilatore e le proprietà di compilazione.
Selezionare la pagina delle proprietà Proprietà di configurazione>C/C++>Riga di comando.
Immettere l'opzione del compilatore nella casella Opzioni aggiuntive.
Per impostare l'opzione del compilatore a livello di codice
- Vedere AdditionalOptions.
Vedi anche
Opzioni del compilatore MSVC
Sintassi della riga di comando del compilatore MSVC