在没有谷歌帮助的情况下,我想知道是否有人可以告诉我是否有可能创建一个C++(g ++)调试宏,例如,"改进的"std :: cout.想法是通过<<接受args并附加一些文本
DBG << "Hello" << world;
Run Code Online (Sandbox Code Playgroud)
可能会产生
myfile.cpp 1420 Hello world
Run Code Online (Sandbox Code Playgroud)
我知道有一些日志库(?)/宏(?)可以做到这一点.我对它是如何完成感兴趣,而不是使用一些软件包.
Rob*_*obᵩ 16
您的宏可以创建一个临时变量,该变量endl在销毁时调用.临时表达将会一直存在,直到封闭表达结束,通常是在表达式结束时;.
#include <iostream>
struct X {
~X() { std::cout << std::endl; }
};
#define DBG (X(), std::cout << __FILE__ << " " << __LINE__ << " ")
int main () {
std::string world(", world");
DBG << "Hello" << world;
}
Run Code Online (Sandbox Code Playgroud)
怎么样:
#define DBG std::cout << __FILE__ << " " << __LINE__ << " "
Run Code Online (Sandbox Code Playgroud)
足够近!不幸的是,您必须world事先声明变量.
| 归档时间: |
|
| 查看次数: |
2432 次 |
| 最近记录: |