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?
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?
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
)
-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
atau clang
. 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:
Untuk mengatur opsi kompiler ini di lingkungan pengembangan Visual Studio
- Buka kotak dialog Halaman Properti proyek. Untuk detailnya, lihat Bekerja dengan Properti Proyek.
- Pilih Properti Konfigurasi, C / C ++, Bahasa.
- Di C ++ Language Standard, pilih standar bahasa yang akan didukung dari kontrol dropdown, lalu pilih OK atau Apply untuk menyimpan perubahan Anda.
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:
add_library (${PROJECT_NAME})
set_property (TARGET ${PROJECT_NAME}
PROPERTY
# Enable C++17 standard compliance
CXX_STANDARD 17
)
Dalam kasus perpustakaan antarmuka:
add_library (${PROJECT_NAME} INTERFACE)
target_compile_features (${PROJECT_NAME}
INTERFACE
# Enable C++17 standard compliance
cxx_std_17
)
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
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)
Visual studio 2019 versi:
Menu drop-down dipindahkan ke:
c++11
danc++14
?