我的應用程序可能用於仍然默認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