C++ C++;14在QtCreator中使用叮当声提供支持

C++ C++;14在QtCreator中使用叮当声提供支持,c++,clang,qt-creator,c++14,C++,Clang,Qt Creator,C++14,如何使用Clang 3.5在QtCreator 3.3中启用C++14支持?我添加了一个叮当声工具包,并在我的项目文件中添加了CONFIG+=c++14。但是,当使用例如时,我得到以下错误: 错误:“自动”返回,不带尾随返回类型;导出的返回类型是C++1y扩展 我必须转到build文件夹中的Makefile并手动将-std=c++11替换为-std=c++14 谢天谢地,当您将工具包添加到项目中时,Makefile只编写了一次。我只需要做一次,就可以随时在QtCreator中构建 所以现在我可以

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

错误:“自动”返回,不带尾随返回类型;导出的返回类型是C++1y扩展


我必须转到build文件夹中的Makefile并手动将
-std=c++11
替换为
-std=c++14

谢天谢地,当您将工具包添加到项目中时,Makefile只编写了一次。我只需要做一次,就可以随时在QtCreator中构建


所以现在我可以使用一个叮当作响的工具包来使用所有新的c++14特性。作为奖励,如果我在Makefile中手动设置
-std=c++1z
,我还可以使用所有c++17特性。好极了

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

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


你重复了你自己的问题吗?见@JoachimPileborg:says“你可以在C++14模式下使用带有-std=C++14选项的Clang(在Clang 3.4和更早版本中使用-std=C++1y)。”我将其解释为“
-std=C++14
可以与3.5和更高版本中的
-std=C++1y
具有相同的效果。”@Idgorman:我的另一个问题是关于GCC中的错误。现在我在问如何启用Clang,这样我就可以绕过GCC中的错误。您可以在
.pro
文件中执行
QMAKE_cxflags+=-std=c++1z
instead@Drop例如我以前试过。它不起作用,因为它以某种方式将
-std=c++1z
-std=c++11
添加到生成文件中。您是否忘记删除
CONFIG+=c++14
?@nib:我想当我删除它时,它反而添加了-std=c++03。我现在已经测试过,
QMAKE\u cxflags+=-std=c++1y
与预期的返回类型推断一样有效。同样在Qt5.5
CONFIG+=c++14
中也可以使用。对于以前版本的Qt,您甚至可以创建自己的
mkspecs/features/c++14.prf
。我的
c++14.prf
文件具有防护装置,用于在Clang早于3.2时停止指定
-std=c++1y
。或者苹果的第四版。我评论了那些守卫-触摸木头,它工作!
contains(QMAKE_LFLAGS_CXX11, -stdlib=libc++) {
    QMAKE_CXXFLAGS_CXX11 += -stdlib=libc++
}