2016-12-23 34 views
10

我想使用C++ 17功能。如何在Visual Studio中啓用C++ 17編譯?

如何在Microsoft Visual Studio中將C++ 14編譯爲C++ 17?

或者它在VS的發佈版本中不可用?

+2

哪個C++ 17個功能?哪個版本的Visual Studio?如果你問的是C++ 17,爲什麼要標記你的問題「C++ 11」和「C++ 14」? – ildjarn

+0

C++ 17不可用,我認爲那些對特定版本的C++感興趣的人知道如何切換它。 例如,我希望std :: vector.emplace_back()返回對新創建的元素的引用。我知道+1行,並且我得到了這個參考,但是我想知道我的問題的答案。 VS社區2015(14.0.25431.01更新3) – Tudvari

+0

你應該在這裏檢查:https://blogs.msdn.microsoft.com/visualstudio/ –

回答

11

看到這個文件現在有一個下拉(至少從VS 2017年3月5日),您可以明確選擇C++ 17。可用的選項是(下項目/屬性/ C++ /語言)

  • ISO C++ 14標準(/ STD:C++ 14)
  • ISO C++ 17標準(/ STD:C + 17)
  • 最新標準草案(/ STD:C++最新)
15

添加到項目設置附加選項:/std:c++latest,使最新的功能 - 目前C++ 17的V S2017,VS2015更新3

https://blogs.msdn.microsoft.com/vcblog/2016/06/07/standards-version-switches-in-the-compiler/

/permissive-將禁用非標準C++擴展和將使VS2017標準符合性。

https://blogs.msdn.microsoft.com/vcblog/2016/11/16/permissive-switch/

EDIT(NOV 2017):最新VS2017功能記錄在這裏: https://docs.microsoft.com/en-gb/cpp/build/reference/std-specify-language-standard-version

VS2017現在支持:/std:[c++14|c++17|c++latest]這些標誌可以通過項目的屬性頁中設置:

在Visual Studio開發中設置此編譯器選項 環境

  1. 打開項目的「屬性頁」對話框。有關詳細信息,請參閱使用項目屬性工作 。
  2. 選擇配置屬性,C/C++, 語言。
  3. 在C++語言標準中,從下拉控件中選擇支持 的語言標準,然後選擇確定或應用以保存 您的更改。