Компиляция с g ++ (из Makefile, сгенерированного с помощью qmake) с использованием строки
#if !QT_CONFIG(printer)
// do something
#endif
дает ошибку препроцессора как для g ++ (7.3.0)
test.cpp:25:6: error: division by zero in #if
#if !QT_CONFIG(printer)
, так и для clang (6.00)
test.cpp:25:6: error: division by zero in preprocessor expression
#if !QT_CONFIG(printer)
^~~~~~~~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h:84:30: note: expanded from macro 'QT_CONFIG'
#define QT_CONFIG(feature) (1/QT_FEATURE_##feature == 1)
~^~~~~~~~~~~~~~~~~~~~~
1 error generated.
, где clang ++ дает более подробный вывод.printer
не включен, поэтому макрос рекомендуется выполнять условной компиляцией.Версия QT 5.9.5.Любые предложения (неправильное использование?) Приветствуются.