QT中一些常用的宏

QT中一些常用的宏

说明
Q_ASSERT
Q_ASSERT_X
常用于断言,Release模式下不起作用
Q_ASSUME = Q_ASSERT_X + Q_UNREACHABLE
Q_COREAPP_STARTUP_FUNCTION 添加一个全局函数,在QCoreApplication构造时被执行。 要注意,这里的执行比QGuiApplication的初始化要早。
Q_DISABLE_COPY 禁用类的拷贝构造函数和赋值构造函数,常用于单例类的实现
Q_DISABLE_COPY_MOVE 禁用类的拷贝语义和移动语义
Q_FOREACH 不在建议使用,等价于foreach关键字
Q_FOREVER 等价于forever关键字
Q_GLOBAL_STATIC
Q_GLOBAL_STATIC_WITH_ARGS
创建一个全局的,静态的对应类型,但相比于static Type t这种写法有一定优势
Q_LOGGING_CATEGORY 快速定义一个日志的category对象
Q_DECLARE_LOGGING_CATEGORY 快速声明一个日志的category对象
Q_OS_* 区分不同的平台,常见的有Q_OS_ANDROID,Q_OS_LINUX,Q_OS_WIN64等
Q_PROCESSOR_* 区分不同的处理器环境,例如Q_PROCESSOR_ARM,Q_PROCESSOR_MIPS,Q_PROCESSOR_X86_64等
Q_LIKELY
Q_UNLIKELY
标记分支预测,缓存命中,提高执行效率。
Q_UNREACHABLE 执行到这里,程序会发生未定义的行为。常见的后果就是崩溃,用于标记永远不会执行到的语句,从而优化代码覆盖率。
Q_UNUSED 没有用到部分参数或对象时,编译器会发出警告,使用此宏减少警告。
qAbs 返回参数的绝对值
qMax 返回两个参数中较大的一个
qMin 返回两个参数中较小的一个
qRound 返回较近的整数
qBound 返回最小值到最大值范围内的一个合理值
qAddPreRoutine 在QCoreApplication构造时执行操作
qAddPostRoutine 在QCoreApplication析构时执行操作
qDeleteAll 删除容器中的所有元素,元素必须是指针类型(注意:qDeleteAll只做元素的delete操作,并不会将元素从容器中remove,需要手动对容器进行clear)
qAsConst Qt 对 C++17 std::as_const 的等价实现,C++17前可以使用,之后建议用标准库的
posted @ 2024-08-23 10:08  3的4次方  阅读(3)  评论(0编辑  收藏  举报