Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C++;可以使用Boost或STL显示自定义字符串的断言?_C#_C++_Testing_Boost_Assert - Fatal编程技术网

C# C++;可以使用Boost或STL显示自定义字符串的断言?

C# C++;可以使用Boost或STL显示自定义字符串的断言?,c#,c++,testing,boost,assert,C#,C++,Testing,Boost,Assert,我真的很想去:(用C++) 在C#XNA中,他们有一种方法可以做到这一点: Debug.Assert( num > 0, "The number must be greater than zero!"); 是否有某种方法可以做到这一点,以便运行时给我一个有意义的完整错误,而不仅仅是“断言失败”错误?使用断言(num>0&&“数字必须大于零!”) 运行时通常显示失败的表达式,因此您可以执行以下操作: assert(num > 0 && "The number must

我真的很想去:(用C++)

在C#XNA中,他们有一种方法可以做到这一点:

Debug.Assert( num > 0, "The number must be greater than zero!");

是否有某种方法可以做到这一点,以便运行时给我一个有意义的完整错误,而不仅仅是“断言失败”错误?

使用断言(num>0&&“数字必须大于零!”)

运行时通常显示失败的表达式,因此您可以执行以下操作:

assert(num > 0 && "The number must be greater than zero!");
这不会影响逻辑,但断言失败消息将包含描述性字符串


此外,这不需要STL或Boost即可工作。

您可以在大多数断言中使用这一点:

assert(("The number must be greater than zero!",  num > 0));

使用BOOST,您可以使用其断言,如中所述:

#包括
/* ... */
BOOST_ASSERT_MSG(num>0,“数字必须大于零!”);

将完全按照要求执行。

您想打印什么错误消息?LOL太简单了。非常感谢。接受答案:D
assert(("The number must be greater than zero!",  num > 0));
#include <boost/assert.hpp>
/* ... */

BOOST_ASSERT_MSG( num > 0, "The number must be greater than zero!");