站长之家关键词挖掘,重庆微信企业网站,淄博网站建设网站推广,网站赚取广告费时常在Qt代码中看到QT_CONFIG宏#xff0c;之前以为和#define、DEFINES 差不多#xff0c;看了定义才发现不是那么回事#xff0c;定义如下#xff1a; 看注释就知道了QT_CONFIG宏#xff0c;其实是#xff1a;实现了一个在编译时期安全检查#xff0c;检查指定的Qt特性…时常在Qt代码中看到QT_CONFIG宏之前以为和#define、DEFINES 差不多看了定义才发现不是那么回事定义如下 看注释就知道了QT_CONFIG宏其实是实现了一个在编译时期安全检查检查指定的Qt特性是否存在或是否可利用。
传入的值为
10或者未定义这将导致一个编译时期的错误有点类似C11的static_assert,其实其幕后就是static_assert实现的。
2-1指定的Qt特性不可用。
31指定的Qt特性可利用。 效果如下
1未定义 2未使能 3使能 通过上面的1还发现了源头在Qt的安装目录中
C:\Qt\Qt5.12.6\5.12.6\msvc2017_64\include\QtNetwork\下的qtnetwork-config.h中是有QT_FEATURE_ssl定义的。
因此QT_CONFIG宏正好可以检测出Qt特性是否存在