相关疑难解决方法(0)

向断言添加消息

喂!

我正在寻找一种方法来添加自定义消息来断言语句.我发现这个问题在断言中添加自定义消息?但那里的信息是静态的.我想做这样的事情:

assert((0 < x) && (x < 10), std::string("x was ") + myToString(x));
Run Code Online (Sandbox Code Playgroud)

当断言失败时,我想要正常输出加上例如"x为100".

c++ debugging logging assert

41
推荐指数
5
解决办法
4万
查看次数

断言失败时如何打印附加信息?

如果assert失败,通常会想要打印其他信息.一种方法是这样的:

assert(vec.size() > i || 
  !(std::cerr << "False: " << vec.size() << ">" << i))
Run Code Online (Sandbox Code Playgroud)

这样,当assert失败时打印实际尺寸.但它很难看,并且很容易忘记!,这将使断言条件成立,程序将继续.

如上所述,人们使用什么来打印关于断言失败的其他信息?

c++ debugging assert

18
推荐指数
2
解决办法
1万
查看次数

使用'assert'来验证参数的数量

我正在为课程分配工作,我认为我让程序正常工作,但现在我想对它进行一些修改,以便更好地理解断言.代码如下 -

#include <iostream>
#include <stdlib.h>
#include <assert.h>
using namespace std;

// Sample program that shows how command line arg works, in Unix g++
// Note argc and argv
// Also shows use of system call, that can launch any program
// system launches 'ls' to display files in the dir

void runAssert(int);

int main(int argc, char *argv[])
{

  cout << "Number of inputs: " << argc << endl;
  cout << "1st argument: " << argv[0] << endl;
  system ("ls"); …
Run Code Online (Sandbox Code Playgroud)

c++ assert

0
推荐指数
1
解决办法
1116
查看次数

标签 统计

assert ×3

c++ ×3

debugging ×2

logging ×1