C ++ 17 özelliklerini kullanmak istiyorum.
Microsoft Visual Studio'da derlemeyi C ++ 14'ten C ++ 17'ye nasıl geçirebilirim?
Veya VS'nin yayın sürümlerinde mevcut değil mi?
C ++ 17 özelliklerini kullanmak istiyorum.
Microsoft Visual Studio'da derlemeyi C ++ 14'ten C ++ 17'ye nasıl geçirebilirim?
Veya VS'nin yayın sürümlerinde mevcut değil mi?
Yanıtlar:
Şimdi, özellikle C ++ 17'yi seçebileceğiniz bir açılır menü var (en azından VS 2017.3.5'ten beri). Kullanılabilir seçenekler şunlardır (proje> Özellikler> C / C ++> Dil> C ++ Dil Standardı)
/std:c++14
/std:c++17
/std:c++latest
(Bahse girerim, C ++ 20 çıktığında ve Visual Studio tarafından daha tam olarak desteklendiğinde olacaktır /std:c++20
)
-std:c++14
, -std:c++17
ve -std:c++latest
el (VS2017 ile test) derleyici seçenekleri girmek için tercih yaparken de, örneğin çalışır.
-
yerine mi demek istiyorsun /std:
?
gcc
Ya da gelirken faydasını görüyorum clang
. O zaman -
daha az müdahaleci olur (ancak sözdizimi hala biraz farklıdır ( :
yerine =
)).
MSBuild (Visual Studio projesi / çözümü * .vcproj / *. Sln ) :
Proje Ayarlarında Ek seçeneklere Ekle: /std:c++latest
en son özellikleri etkinleştirmek için - şu anda VS2017, VS2015 Güncelleme 3 itibariyle C ++ 17.
https://blogs.msdn.microsoft.com/vcblog/2016/06/07/standards-version-switches-in-the-compiler/
/permissive-
standart olmayan C ++ uzantılarını devre dışı bırakır ve VS2017'de standart uyumluluğu etkinleştirir.
https://blogs.msdn.microsoft.com/vcblog/2016/11/16/permissive-switch/
DÜZENLEME (Ekim 2018): En son VS2017 özellikleri burada belgelenmiştir:
https://docs.microsoft.com/en-gb/cpp/build/reference/std-specify-language-standard-version
VS2017 şunları destekler: /std:[c++14|c++17|c++latest]
şimdi. Bu bayraklar, projenin özellik sayfaları aracılığıyla ayarlanabilir:
Visual Studio geliştirme ortamında bu derleyici seçeneğini ayarlamak için
- Projenin Özellik Sayfaları iletişim kutusunu açın. Ayrıntılar için, bkz. Proje Özellikleriyle Çalışma.
- Yapılandırma Özellikleri, C / C ++, Dil'i seçin.
- C ++ Dil Standardı'nda, açılır denetimden desteklenecek dil standardını seçin, ardından değişikliklerinizi kaydetmek için Tamam'ı veya Uygula'yı seçin.
CMake :
Visual Studio 2017 (15.7+), CMake projelerini destekler. CMake, modern C ++ özelliklerini çeşitli şekillerde etkinleştirmeyi mümkün kılar. En temel seçenek, CMakeLists.txt'de bir hedefin özelliğini ayarlayarak modern bir C ++ standardını etkinleştirmektir :
add_library (${PROJECT_NAME})
set_property (TARGET ${PROJECT_NAME}
PROPERTY
# Enable C++17 standard compliance
CXX_STANDARD 17
)
Arayüz kitaplığı olması durumunda:
add_library (${PROJECT_NAME} INTERFACE)
target_compile_features (${PROJECT_NAME}
INTERFACE
# Enable C++17 standard compliance
cxx_std_17
)
Visual Studio 2015 Güncelleştirme 3, aradığınız C ++ 17 özelliğini desteklemez ( emplace_back()
referans döndürme).
C ++ 11/14/17 Özellikleri Desteği (Modern C ++)
VS 2015 RTM'deki C ++ 11/14/17 Özellikleri
VS 2015 Güncellemesi 2'nin STL'si C ++ 17 Şimdiye Kadarki Özellik Tamamlandı
Mevcut Visual Studio 2015 çözümünü Visual Studio 2017'ye getiriyorsanız ve bunu c ++ 17 yerel derleyiciyle oluşturmak istiyorsanız, önce çözümü / projeleri v141'e yeniden hedeflemelisiniz, SONRA açılır menü yukarıda açıklandığı gibi görünecektir (Yapılandırma Özellikleri -> C / C ++ -> Dil -> Dil Standardı)
Visual studio 2019 sürümü:
Açılır menü şu adrese taşındı:
c++11
vec++14
?