Мое приложение может использоваться в системах, которые по-прежнему не соответствуют Qt4.x, а не Qt5.x, и я пытался сделать «быстрый и грязный» порт версии, которая будет компилировать/связывать и запускаться либо с основной версией библиотек. Мне было интересно, что будет лучшим способом, чтобы обойти отсутствие Q_NULLPTR в Qt4.x? Я увидел ссылку, указанную в this SO ответ, который указывает на определение, как:Замена для Q_NULLPTR при обращении приложения Qt5 к Qt4?
#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' в вашем приложении? Неважно, какую версию Qt вы используете, если используете компилятор C++ 11. – sharyex
Я, возможно, перефразирую его, чтобы сказать «Приложение FOSS, в которое я вношу свой вклад» - мы начали использовать Q_NULLPTR, когда мы перешли на Qt 5.xa пару лет назад - я пытался найти способ вернуться к тому, чтобы быть Qt4 .x и сделать как можно меньше изменений; и я не уверен, что люди, использующие Qt4.x, будут использовать компилятор C++ 11 (например, они могут быть на 'gcc' 4.7 not 4.9) ... – SlySven