表格线识别通用库文档
载入中...
搜索中...
未找到
cm::ComplexPrinter类 参考

复杂打印器类 更多...

#include <complex_printer.hpp>

类 cm::ComplexPrinter 继承关系图:
cm::ComplexPrinter 的协作图:

Public 成员函数

 ComplexPrinter (const std::string &default_split_string="\n", const std::string &output_color=Color::BLUE, const std::string &param_name_output_color=Color::GREEN+Color::FONT_BOLD)
 复杂打印器类的带参构造函数
 
 ~ComplexPrinter ()
 复杂打印器类的析构函数
 
ComplexPrinterParseParamNames (std::string param_names_str)
 复杂打印器参数名列表解析
 
template<typename... ARGS>
std::ostream & operator() (const std::string &param_names_str, ARGS... args)
 复杂打印器参数打印
 
ComplexPrinterSetParamNameOutputColor (const std::string &param_name_output_color)
 设置默认输出内容的颜色
 
- Public 成员函数 继承自 cm::Printer
 Printer (const std::string &default_split_string=" ", const std::string &output_color=Color::BLUE)
 打印器类的带参构造函数
 
 ~Printer ()
 打印器类的析构函数
 
template<typename T >
PrinterPrint (T arg)
 实现单个参数的打印
 
template<typename T , typename... ARGS>
PrinterPrint (T arg, ARGS... args)
 实现不定参数的打印
 
template<typename... ARGS>
std::ostream & operator() (ARGS... args)
 实现不定参数的打印
 
PrinterSetOutputColor (const std::string &output_color)
 设置默认输出内容的颜色
 
PrinterSetSplitString (const std::string &split_string)
 设置默认输出内容的分隔字符串
 

额外继承的成员函数

- 静态 Public 成员函数 继承自 cm::Printer
template<typename T >
static bool IsMatchString (T arg, const char *match_string, bool is_regex=false)
 判断泛型参数是否是字符串参数
 
static bool IsMatchString (const char *arg, const char *match_string, bool is_regex=false)
 判断泛型参数是否是字符串参数
 

详细描述

复杂打印器类

该类用于打印输出内容,同时可以设置输出颜色和分隔字符串。它支持不同类型参数和不定参数的打印操作。与简单打印器 cm::Printer 不同的是,复杂打印器还具有打印参数名的功能。

作者
dreamy-xay
日期
2024-01-23

在文件 complex_printer.hpp32 行定义.

构造及析构函数说明

◆ ComplexPrinter()

cm::ComplexPrinter::ComplexPrinter ( const std::string & split_string = "\n",
const std::string & output_color = Color::BLUE,
const std::string & param_name_output_color = Color::GREEN + Color::FONT_BOLD )
inline

复杂打印器类的带参构造函数

该构造函数用于初始化复杂打印器对象,设置默认的打印分隔符、打印内容颜色和参数名打印颜色,并进行一些默认参数的初始化。默认打印分隔符为换行符"\n",默认打印内容颜色为蓝色,默认参数名打印颜色为绿色且加粗。

参数
split_string打印器默认打印分隔符 默认为 "\n"
output_color打印器默认打印内容颜色 默认为 cm::Color::BLUE
param_name_output_color打印器默认参数名打印颜色 默认为 cm::Color::GREEN + cm::Color::FONT_BOLD
作者
dreamy-xay
日期
2024-01-23

在文件 complex_printer.hpp66 行定义.

◆ ~ComplexPrinter()

cm::ComplexPrinter::~ComplexPrinter ( )
inline

复杂打印器类的析构函数

该析构函数将释放类对象所占用的空间资源。

作者
dreamy-xay
日期
2024-01-23

在文件 complex_printer.hpp76 行定义.

成员函数说明

◆ operator()()

template<typename... ARGS>
std::ostream & cm::ComplexPrinter::operator() ( const std::string & param_names_str,
ARGS... args )
inline

复杂打印器参数打印

该函数是复杂打印器的参数打印函数,通过传入参数名子列表字符串和参数列表,实现带参数名的打印功能。首先调用 ComplexPrinter::ParseParamNames 函数解析参数名子列表字符串,将参数名存储到成员变量中。然后调用 ComplexPrinter::Print 函数打印对应参数的值,并使用之前解析的参数名作为标识符进行输出。

前置条件
要使用打印器进行打印,必须重载输出流运算符,或者系统库已经实现了该值类型的输出流运算符重载,例如:int、double、float等基本类型。
参数
param_names_str参数名子列表字符串(如 "a, b, c",表示变量 a、b、c)
args参数列表
示例
int a = 5;
double avg = 1.0;
cm::Point2i pt = {12, 637}; // cm::Point 重载了输出流运算符
// 直接以仿函数方式打印
ComplexPrinter()("variable a, average, point", a, avg, pt);
// 输出结果如下:
// <variable a>: 5
// <average>: 1.0
// <point>: {x: 12, y: 637}
ComplexPrinter(const std::string &default_split_string="\n", const std::string &output_color=Color::BLUE, const std::string &param_name_output_color=Color::GREEN+Color::FONT_BOLD)
复杂打印器类的带参构造函数
点类
Definition point.hpp:52
返回
std::ostream 对象,允许链式调用
作者
dreamy-xay
日期
2023-12-07

在文件 complex_printer.hpp156 行定义.

函数调用图:

◆ ParseParamNames()

ComplexPrinter & cm::ComplexPrinter::ParseParamNames ( std::string param_names_str)
inline

复杂打印器参数名列表解析

该函数根据参数名子列表字符串解析参数名,并将其存储到成员变量 param_names 中。在存储之前,会对参数名进行处理,去除首尾的空格和回车,并在参数名两侧添加 "<>",以便在打印时作为标识符使用。同时维护了变量 current_param_index,用于记录当前打印的参数索引。

注解

  • 在解析参数名时,该函数假设参数名子列表字符串中的参数名之间是通过逗号分隔的,并且可以处理参数名两侧的空格和回车。
  • 该函数支持处理带有括号的情况函数参数,例如 "func(a, b), c" 这种情况下参数名会被解析出两个“func(a, b)”和“c”。
参数
param_names_str参数名子列表字符串(如 "a, b, c",表示变量 a、b、c)
返回
类自身引用,方便链式调用
作者
dreamy-xay
日期
2023-12-07

在文件 complex_printer.hpp93 行定义.

这是这个函数的调用关系图:

◆ SetParamNameOutputColor()

ComplexPrinter & cm::ComplexPrinter::SetParamNameOutputColor ( const std::string & param_name_output_color)
inline

设置默认输出内容的颜色

该函数用于设定永久生效的默认输出内容颜色,设置后将影响后续所有的输出内容颜色。详细可选颜色请参考 cm::Color 类。

参数
output_color输出内容的颜色,详见 cm::Color
返回
类自身引用,方便链式调用
作者
dreamy-xay
日期
2024-01-23

在文件 complex_printer.hpp174 行定义.


该类的文档由以下文件生成: