Saya ingin menggunakan fitur C ++ 17.
Bagaimana cara beralih kompilasi dari C ++ 14 ke C ++ 17 di Microsoft Visual Studio?
Atau tidak tersedia dalam versi rilis VS?
c++
visual-studio
compilation
c++17
Tudvari
sumber
sumber
c++11
danc++14
?Jawaban:
Sekarang ada drop-down (setidaknya sejak VS 2017.3.5) di mana Anda dapat secara khusus memilih C ++ 17. Opsi yang tersedia adalah (di bawah project> Properties> C / C ++> Language> C ++ Language Standard)
/std:c++14
/std:c++17
/std:c++latest
(Saya yakin, setelah C ++ 20 keluar dan lebih didukung oleh Visual Studio itu akan
/std:c++20
)sumber
-std:c++14
,-std:c++17
dan-std:c++latest
juga berfungsi, misalnya ketika Anda lebih suka memasukkan opsi kompilator secara manual (diuji dengan VS2017).-
daripada/std:
sakelar yang saya daftar?gcc
atauclang
. Maka-
itu kurang mengganggu (namun sintaksnya masih sedikit berbeda (:
bukan=
)).MSBuild (proyek / solusi Visual Studio * .vcproj / *. Sln ) :
Tambahkan ke opsi Tambahan di Pengaturan Proyek:
/std:c++latest
untuk mengaktifkan fitur terbaru - saat ini C ++ 17 pada VS2017, VS2015 Pembaruan 3.https://blogs.msdn.microsoft.com/vcblog/2016/06/07/standards-version-switches-in-the-compiler/
/permissive-
akan menonaktifkan ekstensi C ++ non-standar dan akan mengaktifkan kesesuaian standar di VS2017.https://blogs.msdn.microsoft.com/vcblog/2016/11/16/permissive-switch/
EDIT (Okt 2018): Fitur VS2017 terbaru didokumentasikan di sini:
https://docs.microsoft.com/en-gb/cpp/build/reference/std-specify-language-standard-version
VS2017 mendukung:
/std:[c++14|c++17|c++latest]
sekarang. Bendera ini dapat disetel melalui halaman properti proyek:CMake :
Visual Studio 2017 (15.7+) mendukung proyek CMake. CMake memungkinkan untuk mengaktifkan fitur C ++ modern dengan berbagai cara. Opsi paling dasar adalah mengaktifkan standar C ++ modern dengan menyetel properti target di CMakeLists.txt:
Dalam kasus perpustakaan antarmuka:
sumber
Visual Studio 2015 Update 3 tidak mendukung fitur C ++ 17 yang Anda cari (
emplace_back()
mengembalikan referensi).Dukungan Untuk Fitur C ++ 11/14/17 (Modern C ++)
C ++ 11/14/17 Fitur Dalam VS 2015 RTM
VS 2015 Update 2's STL adalah C ++ 17-so-far Feature Complete
Visual Studio 2015 Pembaruan 3
Perbaikan STL Di VS 2015 Pembaruan 3
sumber
Jika membawa solusi Visual Studio 2015 yang ada ke dalam Visual Studio 2017 dan Anda ingin membangunnya dengan compiler asli c ++ 17, Anda harus menargetkan ulang solusi / proyek ke v141 terlebih dahulu, MAKA dropdown akan muncul seperti yang dijelaskan di atas (Properti Konfigurasi -> C / C ++ -> Bahasa -> Standar Bahasa)
sumber
Visual studio 2019 versi:
Menu drop-down dipindahkan ke:
sumber