2017-09-02 60 views
-3

在構建或編譯器選項中沒有C++ 17選項,只有C++ 14 如何在代碼塊中啓用它,以便兩種編碼工具和編譯器支持它?如何在代碼塊中啓用C++ 17支持

+0

通行證'-std = C++ 17'作爲編譯器的選項(如果使用了clang或gcc)。 –

+0

爲什麼你需要特定的C++ 17?你不能使用C++ 14並等幾年? –

+0

@Basile Starynkevitch im正在開發一個真正需要C++ 17的新文件系統庫的項目 –

回答

5

Code::Blocks一個編譯器(但一些美化了source code editor,有時自稱IDE s,這運行一些外部編譯器)。

你需要一個C++ 17 編譯(一旦你有一個你可以配置你的IDE或編輯器與適當選擇使用它)。嘗試了最新版本的GCC(至少GCC 7,也許等待GCC 8)或Clang(等待Clang5)和pass it-std=c++17選項

注意C++17是定於在2006年底公佈的C++標準您可能需要等待一段時間(可能是一年或兩年)編譯器和標準庫實現才能正確並完全實現它。

因此,我不建議在即將發佈的項目上使用C++ 17功能(2017年底),因爲您正在建立β質量基礎。但是,如果您在2019年發佈一個大型項目,那麼您可能會冒險下注,您所使用的C++ 17功能在那段時間會變得成熟。

關於標準庫函數(例如std::filesystem),您可以很容易地找到大致相當的(例如,在本機操作系統或POSIX API中,在Boost中,在Qt中,在POCO中......) C++ 17的實現很常見。

(我推薦使用編譯器在命令行上,或使用makeninja,或一些其它build automation系統中運行的編譯器命令;細節可以操作系統和編譯器具體。)

+1

除了'make'之外,請推薦*任何*。像CMake這樣的跨平臺構建系統將是一個很好的建議。 – tambre

+0

'cmake'生成'Makefile's –

+0

當然,這是它可以生成的一件事。實際上,你不會再想要生成Makefiles,而是忍者文件,因爲它們在各方面都很優秀。您還可以爲許多不同的IDE生成項目文件。有適合每個平臺和品味的東西。 – tambre

相關問題