我目前在 Qt 应用程序中使用 C++11 功能。不过,我想在我的应用程序中使用一些新的 C++14 功能。
要在 Qt 应用程序中启用 C++11,只需在qmake项目文件,即:
CONFIG += c++11
或者对于早期版本:
QMAKE_CXXFLAGS += -std=c++1y
我已经尝试用 C++14 做同样的事情,但没有成功。我改变了上面提到的行qmake像这样的项目:
CONFIG += c++14
或者对于早期版本:
QMAKE_CXXFLAGS += -std=c++1y
之后,在尝试构建项目时会出现许多以前不存在的编译错误。该项目编译得很好,但是,如果我尝试使用任何 C++14 功能,则会收到编译错误。这是一个例子:
template<typename T>
constexpr T pi = T(3.1415926535897932385);
这是相应的错误:
main.cpp:7: error: template declaration of 'constexpr const T pi'
constexpr T pi = T(3.1415926535897932385);
^
如何在使用时启用 C++14 功能qmakeQtCreator 中的项目?
我使用的是 Qt 5.3.2、Qt Creator 3.2.1 和 MinGW 4.8.2 32 位。
现在从 Qt 5.4 开始正确支持这一点 http://woboq.com/blog/cpp14-in-qt.html。您只需将其输入到 qmake 项目文件中:
CONFIG += c++14
Thiago 在 2014 年中期进行了必要的代码更改:
添加对 CONFIG += c++14 的支持 https://codereview.qt-project.org/#/c/87831/
我刚刚创建了必要的文档更改:
在 qmake 变量引用中提及 c++14 CONFIG 选项 https://codereview.qt-project.org/#/c/102054/
请注意,仅 gcc 5.0 支持变量模板,但您的代码可以正常工作。这可用于使用较旧的 gcc 测试 C++14:
main.cpp
#include <iostream>
int main()
{
// Binary literals: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3472.pdf
// Single-quotation-mark as a digit separator: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3781.pdf
std::cout << 0b0001'0000'0001;
return 0;
}
main.pro
TEMPLATE = app
TARGET = main
CONFIG -= qt
CONFIG += c++14
SOURCES += main.cpp
构建并运行
qmake && make && ./main
Output
257
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)