首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否在断言中添加自定义消息?

是否在断言中添加自定义消息?
EN

Stack Overflow用户
提问于 2010-09-12 06:39:25
回答 8查看 85.3K关注 0票数 144

有没有办法添加或编辑assert抛出的消息?我想用像这样的东西

代码语言:javascript
复制
assert(a == b, "A must be equal to B");

然后,编译器添加行、时间等等……

有可能吗?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2010-09-12 06:41:34

我见过的一个技巧是使用&&运算符。由于如果指针不为空,则指针“为真”,因此您可以在不更改条件的情况下执行以下操作:

代码语言:javascript
复制
assert(a == b && "A is not equal to B");

因为assert显示了失败的条件,所以它也会显示您的消息。如果这还不够,您可以编写自己的myAssert函数或宏,它们将显示您想要的任何内容。

票数 270
EN

Stack Overflow用户

发布于 2012-07-16 22:50:31

另一种选择是颠倒操作数并使用逗号运算符。您需要额外的圆括号,这样逗号就不会被视为参数之间的分隔符:

代码语言:javascript
复制
assert(("A must be equal to B", a == b));

(这是从上面的评论中复制的,为了更好的可见性)

票数 54
EN

Stack Overflow用户

发布于 2012-10-09 11:03:44

代码语言:javascript
复制
BOOST_ASSERT_MSG(expre, msg)

http://www.boost.org/doc/libs/1_51_0/libs/utility/assert.html

你可以直接使用它,或者复制Boost的代码。还请注意,Boost assert仅用于头文件,因此如果您不想安装所有Boost,则可以只抓取该单个文件。

票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3692954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档