0%

C++调试信息输出类

  1. 使用示例
  2. 特点
  3. 代码

使用示例

示例代码:

1
2
3
4
5
6
7
8
debug() << "测试" << "," << "321" << 123 << 123.1 << 123.2f;
debug() << "测试" << "," << "123";
debug() << "测试" << "," << "123";

debug("123") << 123;
debug(1);
debug(1.1);
debug(1.1f);

输出:

1
2
3
4
5
6
7
测试 , 321 123 123.1 123.2
测试 , 123
测试 , 123
123 123
1
1.1
1.1

特点

  1. 使用<<运算符进行层级输出,也可以通过参数输出;
  2. 嵌套输出的每一项之间用空格隔开;
  3. 一行输出多个内容后自动换行;
  4. 基于std::cout,支持类型完整;

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#pragma warning(disable:26444)
#include <iostream>

/// <summary>
/// 调试信息输出类
/// </summary>
class debug {
public:
template <typename T>
inline debug(T t)
{
this->prtEndl = true;
std::cout << t;
}
inline debug()
{
this->prtEndl = false;
}
template <typename T>
inline debug& operator<<(T t)
{
if (!this->prtEndl)
{
this->prtEndl = true;
}
else
{
std::cout << " ";
}
std::cout << t;
return *this;
}
inline ~debug()
{
if (prtEndl)
{
std::cout << std::endl;
}
}
private:
// 是否输出换行
bool prtEndl;
};