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?
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?
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
)
-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
lub clang
. 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:
Aby ustawić tę opcję kompilatora w środowisku programistycznym programu Visual Studio
- Otwórz okno dialogowe strony właściwości projektu. Aby uzyskać szczegółowe informacje, zobacz Praca z właściwościami projektu.
- Wybierz Właściwości konfiguracji, C / C ++, język.
- W C ++ Language Standard wybierz z rozwijanego menu standard językowy do obsługi, a następnie wybierz OK lub Zastosuj, aby zapisać zmiany.
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:
add_library (${PROJECT_NAME})
set_property (TARGET ${PROJECT_NAME}
PROPERTY
# Enable C++17 standard compliance
CXX_STANDARD 17
)
W przypadku biblioteki interfejsów:
add_library (${PROJECT_NAME} INTERFACE)
target_compile_features (${PROJECT_NAME}
INTERFACE
# Enable C++17 standard compliance
cxx_std_17
)
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
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)
Wersja programu Visual Studio 2019:
Rozwijane menu zostało przeniesione do:
c++11
ic++14
?