/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
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.
Aggiungere
/Zc:__cplusplus
o/Zc:__cplusplus-
al riquadro Opzioni aggiuntive: .
Vedi anche
/Zc
(Conformità)
/std
(Specificare la versione standard della lingua)
Macro predefinite