我的应用程序可能用于仍然默认Qt4.x而不是Qt5.x的系统,我试图做一个“quick and dirty”端口来编译/链接和运行主版本图书馆。我想知道什么是最佳方式来解决Qt4.x中Q_NULLPTR的缺失?我看到this提到的链接,以便回答这表明定义为:将Qt5应用程序移植到Qt4时替换为Q_NULLPTR?
#ifdef Q_COMPILER_NULLPTR
# define Q_NULLPTR nullptr
#else
# define Q_NULLPTR NULL
#endif
所以我应该只使用一个:
contains(QT_MAJOR_VERSION, 4) {
DEFINES += Q_NULLPTR=NULL
}
在我
qmake
项目文件
?
为什么在应用程序中使用'Q_NULLPTR'而不是'nullptr'?如果您使用C++ 11编译器,则使用何种版本的Qt无关紧要。 – sharyex
我也许应该改为说“我为之贡献的FOSS应用程序” - 几年前,当我们转换到Qt 5.xa时,我们开始使用Q_NULLPTR--我试图找到回到Qt4的方式.x兼容并尽可能少地做出改变;我不相信使用Qt4.x的人会使用C++ 11编译器(例如,他们可能在'gcc' 4.7而不是4.9)... – SlySven