Chcę używać funkcji C ++ 17.
Jak mogę przełączyć kompilację z C ++ 14 na C ++ 17 w Microsoft Visual Studio?
A może nie jest dostępny w wydaniu VS?
c++
visual-studio
compilation
c++17
Tudvari
źródło
źródło
c++11
ic++14
?Odpowiedzi:
Jest teraz lista rozwijana (przynajmniej od wersji VS 2017.3.5), w której można konkretnie wybrać C ++ 17. Dostępne opcje to (w projekcie> Właściwości> C / C ++> Język> C ++ Standard języka)
/std:c++14
/std:c++17
/std:c++latest
(Założę się, że gdy C ++ 20 wyjdzie i będzie w pełni obsługiwany przez Visual Studio
/std:c++20
)źródło
-std:c++14
,-std:c++17
a-std:c++latest
także działa np. Gdy wolisz ręcznie wpisywać opcje kompilatora (testowane z VS2017).-
zamiast wymienionych/std:
przełączników?gcc
lubclang
. Wtedy-
jest mniej inwazyjny (jednak składnia nadal nieznacznie się różni (:
zamiast=
)).MSBuild (projekt / rozwiązanie programu Visual Studio * .vcproj / *. Sln ) :
Dodaj do dodatkowych opcji w ustawieniach projektu:
/std:c++latest
aby włączyć najnowsze funkcje - obecnie C ++ 17 od VS2017, VS2015 Update 3.https://blogs.msdn.microsoft.com/vcblog/2016/06/07/standards-version-switches-in-the-compiler/
/permissive-
wyłączy niestandardowe rozszerzenia C ++ i włączy zgodność ze standardami w VS2017.https://blogs.msdn.microsoft.com/vcblog/2016/11/16/permissive-switch/
EDYCJA (październik 2018): Najnowsze funkcje VS2017 są udokumentowane tutaj:
https://docs.microsoft.com/en-gb/cpp/build/reference/std-specify-language-standard-version
VS2017 obsługuje:
/std:[c++14|c++17|c++latest]
teraz. Te flagi można ustawić na stronach właściwości projektu:CMake :
Program Visual Studio 2017 (15.7+) obsługuje projekty CMake. CMake umożliwia włączanie nowoczesnych funkcji C ++ na różne sposoby. Najbardziej podstawową opcją jest włączenie nowoczesnego standardu C ++ poprzez ustawienie właściwości celu w CMakeLists.txt:
W przypadku biblioteki interfejsów:
źródło
Visual Studio 2015 Update 3 nie obsługuje szukanej funkcji języka C ++ 17 (
emplace_back()
zwracanie odwołania).Obsługa funkcji C ++ 11/14/17 (nowoczesny C ++)
Funkcje C ++ 11/14/17 w VS 2015 RTM
STL VS 2015 Update 2 to C ++ 17-jak dotąd Funkcja kompletna
Visual Studio 2015 Update 3
Poprawki STL w VS 2015 Update 3
źródło
Jeśli przenosisz istniejące rozwiązanie Visual Studio 2015 do Visual Studio 2017 i chcesz je skompilować za pomocą natywnego kompilatora c ++ 17, powinieneś najpierw ponownie skierować rozwiązanie / projekty do wersji 141, a następnie lista rozwijana pojawi się zgodnie z opisem powyżej (Właściwości konfiguracji -> C / C ++ -> Język -> Standard języka)
źródło
Wersja programu Visual Studio 2019:
Rozwijane menu zostało przeniesione do:
źródło