带有 Clang 的 QtCreator 中的 C++14 支持

C++14 support in QtCreator with Clang

如何使用 Clang 3.5 在 QtCreator 3.3 中启用 C++14 支持?我添加了一个 Clang 工具包,并在我的项目文件中添加了 CONFIG += c++14。但是,当使用例如return type deduction 我收到以下错误:

error: 'auto' return without trailing return type; deduced return types are a C++1y extension

我不得不转到构建文件夹中的 Makefile 并手动将 -std=c++11 替换为 -std=c++14

幸运的是,当您将套件添加到项目时,Makefile 只编写一次。我只需要这样做一次,并且可以根据需要在 QtCreator 中多次构建。

所以现在我可以使用 Clang 工具包来使用所有新的 c++14 功能。作为奖励,如果我在 Makefile 中手动设置 -std=c++1z,我还可以使用所有 c++17 功能。甜!

您可以在 .pro 文件中使用 CONFIG += c++14 和 Qt5.5

但是clang有一个bug,所以我们需要修改Qt/5.5/clang_64/mkspecs/features/c++14.prf文件, 在 include(c++11.prf) 之前添加此代码:

contains(QMAKE_LFLAGS_CXX11, -stdlib=libc++) {
    QMAKE_CXXFLAGS_CXX11 += -stdlib=libc++
}