gpt4 book ai didi

c++ - 轻松打印详细的调试输出?

转载 作者:太空狗 更新时间:2023-10-29 21:09:23 25 4
gpt4 key购买 nike

我基本上是在寻找一种自动输入如下内容的方法:

cout << "a[" << x << "][" << y << "] =\t" << a[x][y] << endl;

类似于:

PRINTDBG(a[x][y]);

理想情况下,这也适用于

PRINTDBG(func(arg1, arg2));

甚至

PRINTDBG(if(condition) func(foo););

(这将打印例如“if(false) func(5)”)。

也欢迎不可移植的 hacks :)

(不,使用调试器是不一样的,它的灵 active 要差得多,我发现它很困惑)

最佳答案

以您想要的方式,这是不可能的。如果你有 if(condition) func(foo); 给一个宏,它可以将这些东西字符串化,并且它会打印 if(condition) func(foo); ,但不是用变量的实际值代替。请记住,预处理器不知道该代码的结构。

对于调试,我会使用一些类型安全的 printf 变体,如 boost.format 或一些自制的 printf with boost.fusion ,这使得打印这样的东西的工作变得更加容易:

dprintf("a[%][%] = %", (x, y, a[x][y]));

关于c++ - 轻松打印详细的调试输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/466488/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com