/Zc:__cplusplus (Abilita macro aggiornata __cplusplus )

L'opzione /Zc:__cplusplus del compilatore consente alla __cplusplus macro del preprocessore di segnalare un valore aggiornato per il supporto recente degli standard del linguaggio C++. Per impostazione predefinita, Visual Studio restituisce sempre il valore 199711L per la macro del __cplusplus preprocessore.

Sintassi

/Zc:__cplusplus[-]

Osservazioni:

La __cplusplus macro del preprocessore viene comunemente usata per segnalare il supporto per una versione specifica dello standard C++. Poiché un sacco di codice esistente sembra dipendere dal valore di questa macro corrispondente 199711L, il compilatore non modifica il valore della macro a meno che non si acconsente esplicitamente usando l'opzione del /Zc:__cplusplus compilatore. L'opzione /Zc:__cplusplus è disponibile a partire da Visual Studio 2017 versione 15.7 e disattivata per impostazione predefinita. Nelle versioni precedenti di Visual Studio e, per impostazione predefinita, o se /Zc:__cplusplus- è specificato, Visual Studio restituisce il valore 199711L per la macro del __cplusplus preprocessore. L'opzione /permissive- non abilita /Zc:__cplusplus.

Quando l'opzione /Zc:__cplusplus è abilitata, il valore segnalato dalla macro dipende dall'impostazione __cplusplus dell'opzione di /std versione. Questa tabella indica i valori possibili per la macro:

/Zc:__cplusplus Opzione /std Opzione Valore __cplusplus
Zc:__cplusplus /std:c++14 (predefinito) 201402L
Zc:__cplusplus /std:c++17 201703L
Zc:__cplusplus /std:c++20 202002L
Zc:__cplusplus /std:c++latest vedere il testo
Zc:__cplusplus- (disabilitato) Qualsiasi valore 199711L
Non specificato Qualsiasi valore 199711L

Il compilatore non supporta le opzioni degli standard per C++98, C++03 o C++11. L'opzione /std:c++20 è disponibile a partire da Visual Studio 2019 versione 16.11. Il valore di __cplusplus con l'opzione /std:c++latest dipende dalla versione di Visual Studio. È sempre almeno un valore superiore al valore standard supportato più alto supportato __cplusplus dalla versione di Visual Studio.

Per il rilevamento più dettagliato delle modifiche apportate al set di strumenti del compilatore, utilizzare la _MSC_VER macro predefinita. Il valore di questa macro predefinita viene incrementato per ogni aggiornamento del set di strumenti apportato in Visual Studio 2017 e versioni successive. La _MSVC_LANG macro predefinita indica la versione standard se l'opzione /Zc:__cplusplus è abilitata o disabilitata. Quando /Zc:__cplusplus è abilitato, __cplusplus ha lo stesso valore di _MSVC_LANG.

Per impostare questa opzione del compilatore in Visual Studio

  1. Aprire la finestra di dialogo Pagine delle proprietà del progetto. Per informazioni dettagliate, vedere Impostare il compilatore e le proprietà di compilazione.

  2. Selezionare la pagina delle proprietà Proprietà di configurazione>C/C++>Riga di comando.

  3. Aggiungere /Zc:__cplusplus o /Zc:__cplusplus- al riquadro Opzioni aggiuntive: .

Vedi anche

/Zc (Conformità)
/std (Specificare la versione standard della lingua)
Macro predefinite