Voglio usare le funzionalità di C ++ 17.
Come posso cambiare la compilazione da C ++ 14 a C ++ 17 in Microsoft Visual Studio?
O non è disponibile nelle versioni di rilascio di VS?
Voglio usare le funzionalità di C ++ 17.
Come posso cambiare la compilazione da C ++ 14 a C ++ 17 in Microsoft Visual Studio?
O non è disponibile nelle versioni di rilascio di VS?
Risposte:
Ora è disponibile un menu a discesa (almeno da VS 2017.3.5) in cui è possibile selezionare specificamente C ++ 17. Le opzioni disponibili sono (in progetto> Proprietà> C / C ++> Linguaggio> Standard linguaggio C ++)
/std:c++14
/std:c++17
/std:c++latest
(Scommetto, una volta che C ++ 20 sarà disponibile e sarà più completamente supportato da Visual Studio /std:c++20
)
-std:c++14
, -std:c++17
e -std:c++latest
funziona anche, ad esempio quando si preferisce inserire manualmente le opzioni di compilazione (testato con VS2017).
-
invece degli /std:
interruttori che elenco?
gcc
o clang
. Quindi -
è meno invadente (tuttavia la sintassi è ancora leggermente diversa ( :
invece di =
)).
MSBuild (progetto / soluzione Visual Studio * .vcproj / *. Sln ) :
Aggiungi a Opzioni aggiuntive in Impostazioni progetto: /std:c++latest
per abilitare le funzionalità più recenti - attualmente C ++ 17 a partire da VS2017, VS2015 Update 3.
https://blogs.msdn.microsoft.com/vcblog/2016/06/07/standards-version-switches-in-the-compiler/
/permissive-
disabiliterà le estensioni C ++ non standard e abiliterà la conformità standard in VS2017.
https://blogs.msdn.microsoft.com/vcblog/2016/11/16/permissive-switch/
EDIT (ottobre 2018): le ultime funzionalità di VS2017 sono documentate qui:
https://docs.microsoft.com/en-gb/cpp/build/reference/std-specify-language-standard-version
VS2017 supporta: /std:[c++14|c++17|c++latest]
ora. Questi flag possono essere impostati tramite le pagine delle proprietà del progetto:
Per impostare questa opzione del compilatore nell'ambiente di sviluppo di Visual Studio
- Aprire la finestra di dialogo Pagine delle proprietà del progetto. Per i dettagli, vedere Utilizzo delle proprietà del progetto.
- Seleziona Proprietà di configurazione, C / C ++, Lingua.
- In C ++ Language Standard, scegli lo standard del linguaggio da supportare dal controllo a discesa, quindi scegli OK o Applica per salvare le modifiche.
CMake :
Visual Studio 2017 (15.7+) supporta i progetti CMake. CMake rende possibile abilitare le moderne funzionalità C ++ in vari modi. L'opzione più semplice è abilitare un moderno standard C ++ impostando la proprietà di un obiettivo in CMakeLists.txt:
add_library (${PROJECT_NAME})
set_property (TARGET ${PROJECT_NAME}
PROPERTY
# Enable C++17 standard compliance
CXX_STANDARD 17
)
Nel caso di una libreria di interfacce:
add_library (${PROJECT_NAME} INTERFACE)
target_compile_features (${PROJECT_NAME}
INTERFACE
# Enable C++17 standard compliance
cxx_std_17
)
Visual Studio 2015 Update 3 non supporta la funzionalità C ++ 17 che stai cercando ( emplace_back()
restituendo un riferimento).
Supporto per funzionalità C ++ 11/14/17 (Modern C ++)
Funzionalità C ++ 11/14/17 in VS 2015 RTM
Se si porta la soluzione Visual Studio 2015 esistente in Visual Studio 2017 e si desidera crearla con il compilatore nativo c ++ 17, è necessario prima retargetare la soluzione / i progetti alla v141, POI il menu a discesa apparirà come descritto sopra (Proprietà di configurazione -> C / C ++ -> Lingua -> Lingua standard)
Versione di Visual Studio 2019:
Il menu a discesa è stato spostato in:
c++11
ec++14
?