- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
最佳答案
Q_ASSERT
是一个自定义的断言宏,可以增强标准的assert
功能。
错误消息由qFatal()
处理,在某些平台上,其行为比标准的assert宏稍好。例如,在Windows上,它将在断言失败的时刻触发Visual Studio调试器,而不仅仅是调用abort()
。
您还可以将Qt错误消息功能(例如qFatal
)的输出重定向到自定义消息处理程序(使用qInstallMessageHandler())。例如,如果您要将错误消息重定向到文件,它可能会很有用。
还要注意,Q_ASSERT
被宏QT_NO_DEBUG
禁用(而assert
被NDEBUG
禁用):这可以用来在Qt相关代码和其余代码之间断言。
关于qt - 为什么Q_ASSERT而不是断言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38831926/
我需要确保传递给我的构造函数的某个指针不是NULL。通常我只是在函数的开头放置一个 Q_ASSERT(),如下所示: void Class::doStuff( Object *object ) {
我找不到关于发布版本下 Q_ASSERT 语义的明确声明。如果没有断言检查,那么是否对断言表达式进行求值? 考虑以下代码 Q_ASSERT(do_something_report_false_if_f
这个问题在这里已经有了答案: Q_ASSERT release build semantics (2 个答案) 关闭 9 年前。 根据设计,Q_ASSERT 不会导致应用程序在 Release模式下
我正在使用 QVector在很多源文件中。当我运行程序时出现错误: ASSERT failure in QVector::operator[]: "index out of range", file
我有一个Q_ASSERT(): Q_ASSERT(QString("%1").arg(0) != "0"); 当它失败时,它显示一个中止/重试/忽略消息框,但在文本中它说: File: f:\dd\v
我在类方法中有这个简单的代码(使用 std::map 作为各种数据的容器): try { commonHeader->version = options.at("M3UA version"
我想用 gtest 测试断言。该方法如下所示: void aMethod() { Q_ASSERT( 1 == geode.getNumDrawables()); DoSomeOthe
这似乎是一个错误,因为在 Qt Creator 上,Q_ASSERT(false) 导致我的应用程序退出,即使文档说它应该允许您中断断言: On Windows, for debug builds,
我是一名优秀的程序员,十分优秀!