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

打印器类 更多...

#include <printer.hpp>

类 cm::Printer 继承关系图:

Public 成员函数

 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 成员函数

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)
 判断泛型参数是否是字符串参数
 

详细描述

打印器类

该类用于打印输出内容,同时可以设置输出颜色和分隔字符串。它支持不同类型参数和不定参数的打印操作。

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

在文件 printer.hpp32 行定义.

构造及析构函数说明

◆ Printer()

cm::Printer::Printer ( const std::string & split_string = " ",
const std::string & output_color = Color::BLUE )
inline

打印器类的带参构造函数

这个构造函数用于初始化打印器对象,设置默认的打印分隔符和打印内容颜色,并进行一些默认参数的初始化。默认的打印分隔符是空格,打印内容的默认颜色为蓝色。

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

在文件 printer.hpp84 行定义.

◆ ~Printer()

cm::Printer::~Printer ( )
inline

打印器类的析构函数

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

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

在文件 printer.hpp93 行定义.

成员函数说明

◆ IsMatchString() [1/2]

bool cm::Printer::IsMatchString ( const char * arg,
const char * match_string,
bool is_regex = false )
inlinestatic

判断泛型参数是否是字符串参数

函数用于判断传入的参数是否为字符串类型,并检查该字符串是否与指定的字符串模式匹配,支持使用正则表达式进行匹配。

参数
arg常量字符串参数
match_string匹配字符串,可以是正则表达式
is_regex匹配字符串是否是正则表达式 默认为 false
返回
泛型参数是否匹配指定字符串规则
返回值
true泛型参数符合指定字符串规则
false泛型参数不符合指定字符串规则

示例
// 测试部分类型参数
int a = 5;
double c = 6;
cm::Point2i pt = {2, 4};
const char* str1 = "ok";
const char* str2 = "__SPLIT=,,,__";
// 初始化打印器
// 开始测试
// 非常量字符串参数,下列 IsMatchString 测试默认会返回 false
printer.Print(cm::Printer::IsMatchString(a, "__SPLIT=.*__", true)); // 输出结果:false
printer.Print(cm::Printer::IsMatchString(c, "__SPLIT=.*__", true)); // 输出结果:false
printer.Print(cm::Printer::IsMatchString(pt, "__SPLIT=.*__", true)); // 输出结果:false
// 常量字符串参数,下列 IsMatchString 测试会匹配字符串是否满足 "__SPLIT=.*__" 形式正则表达式要求
printer.Print(cm::Printer::IsMatchString(str1, "__SPLIT=.*__", true)); // 输出结果:false
printer.Print(cm::Printer::IsMatchString(str2, "__SPLIT=.*__", true)); // 输出结果:true
打印器类
Definition printer.hpp:32
static bool IsMatchString(T arg, const char *match_string, bool is_regex=false)
判断泛型参数是否是字符串参数
Definition printer.hpp:115
作者
dreamy-xay
日期
2024-01-23

在文件 printer.hpp157 行定义.

◆ IsMatchString() [2/2]

template<typename T >
bool cm::Printer::IsMatchString ( T arg,
const char * match_string,
bool is_regex = false )
inlinestatic

判断泛型参数是否是字符串参数

该函数用于判断传入的泛型参数是否是字符串类型,并检查该字符串是否与指定的字符串模式匹配,支持使用正则表达式进行匹配。

模板参数
T非常量字符串参数类型
注解
对于非常量字符串参数,默认情况下该函数返回 false;而对于常量字符串参数,则可以参考 示例 进行查看。
参数
arg非常量字符串参数
match_string匹配字符串,可以是正则表达式
is_regex匹配字符串是否是正则表达式 默认为 false
返回
泛型参数是否匹配指定字符串规则
返回值
true泛型参数符合指定字符串规则
false泛型参数不符合指定字符串规则
作者
dreamy-xay
日期
2024-01-23

在文件 printer.hpp115 行定义.

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

◆ operator()()

template<typename... ARGS>
std::ostream & cm::Printer::operator() ( ARGS... args)
inline

实现不定参数的打印

该函数用于实现对不定数量、类型的参数进行打印操作。

前置条件
要使用打印器进行打印,必须重载输出流运算符,或者系统库已经实现了该值类型的输出流运算符重载,例如:int、double、float等基本类型。
注意
该函数特别处理以下两类特殊字符串参数,不将其作为常规文本打印:
  • "__NO_COLOR__":此字符串不会被打印出来,而是作为一个指示符,用来取消后续文本的颜色输出。
  • "__SPLIT=,__":同样不会被打印,该字符串指示设置一个自定义的临时分隔符(本例中为","),用于分隔后续打印的多个参数。"="后面的内容指定了新的分隔符,可以是任意字符串。
模板参数
...ARGS 任意数量的表达式(可变参数)
参数
args全部参数值列表
返回
返回输出流对象
示例
// 声明打印变量
int a = 5;
double avg = 1.0;
cm::Point2i pt = {12, 637}; // cm::Point 重载了输出流运算符
// 支持以下方式打印
// 输出结果如下:5 1.0 {x: 12, y: 637}
// 通过 cm::Printer 的实例化对象打印
printer(a, avg, pt);
作者
dreamy-xay
日期
2024-01-23

在文件 printer.hpp309 行定义.

函数调用图:

◆ Print() [1/2]

template<typename T >
Printer & cm::Printer::Print ( T arg)
inline

实现单个参数的打印

该函数仅用于打印单个参数,同时该函数也是 不定参数的打印的 函数 的递归终止函数。

前置条件
要使用打印器进行打印,必须重载输出流运算符,或者系统库已经实现了该值类型的输出流运算符重载,例如:int、double、float等基本类型。
注解
该函数作为重载的 Print 函数系列中的一个重要组成部分,专门用于终止递归调用过程,实现对单一参数的打印功能。
注意
该函数特别处理以下两类特殊字符串参数,不将其作为常规文本打印:
  • "__NO_COLOR__":此字符串不会被打印出来,而是作为一个指示符,用来取消后续文本的颜色输出。
  • "__SPLIT=,__":同样不会被打印,该字符串指示设置一个自定义的临时分隔符(本例中为","),用于分隔后续打印的多个参数。"="后面的内容指定了新的分隔符,可以是任意字符串。
模板参数
T单个参数的模板数据类型
参数
arg单个参数
返回
类自身引用,方便链式调用
作者
dreamy-xay
日期
2023-12-07

在文件 printer.hpp186 行定义.

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

◆ Print() [2/2]

template<typename T , typename... ARGS>
Printer & cm::Printer::Print ( T arg,
ARGS... args )
inline

实现不定参数的打印

该函数用于实现对不定数量、类型的参数进行打印操作。

前置条件
要使用打印器进行打印,必须重载输出流运算符,或者系统库已经实现了该值类型的输出流运算符重载,例如:int、double、float等基本类型。
注意
该函数特别处理以下两类特殊字符串参数,不将其作为常规文本打印:
  • "__NO_COLOR__":此字符串不会被打印出来,而是作为一个指示符,用来取消后续文本的颜色输出。
  • "__SPLIT=,__":同样不会被打印,该字符串指示设置一个自定义的临时分隔符(本例中为","),用于分隔后续打印的多个参数。"="后面的内容指定了新的分隔符,可以是任意字符串。
模板参数
T单个参数的模板数据类型
...ARGS任意数量的表达式(可变参数)
参数
arg单个参数
args其他参数值列表
返回
类自身引用,方便链式调用
示例
// 声明打印变量
int a = 5;
double avg = 1.0;
cm::Point2i pt = {12, 637}; // cm::Point 重载了输出流运算符
// 直接打印
// 输出结果如下:5 1.0 {x: 12, y: 637}
// 通过 cm::Printer 的实例化对象打印
printer.Print(a, avg, pt);
Printer & Print(T arg)
实现单个参数的打印
Definition printer.hpp:186
作者
dreamy-xay
日期
2023-12-07

在文件 printer.hpp250 行定义.

函数调用图:

◆ SetOutputColor()

Printer & cm::Printer::SetOutputColor ( const std::string & output_color)
inline

设置默认输出内容的颜色

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

参数
output_color输出内容的颜色,详见 cm::Color
返回
返回类自身引用,方便链式调用
注意
默认情况下,输出内容的颜色优先级低于关键字 "__NO_COLOR__"。换句话说,无论默认输出内容的颜色是什么,如果在打印时添加了打印关键字 "__NO_COLOR__",则该函数调用后续参数的颜色输出都将被临时撤销。

示例
// 初始化打印器
cm::Printer printer; // 默认输出内容的颜色为蓝色
// 初始化需要打印的变量
int a = 1;
double b = 3;
cm::Point2i pt = {2, 4}; // cm::Point 重载了输出流运算符
// 打印内容
printer.Print(a, b, pt, "__NO_COLOR__"); // 由于 "__NO_COLOR__" 之后没有参数,所以关键词不生效
// 输出结果如下:
// 1 3 {x: 2, y: 4}
// ^ ^ ^
//蓝色 蓝色 蓝色
// 修改默认输出内容的颜色为红色
printer.SetOutputColor(cm::Color::RED);
// 打印内容
printer.Print(a, "__NO_COLOR__", b, pt);
// 输出结果如下:
// 1 3 {x: 2, y: 4}
// ^ ^ ^
//红色 无色 无色
// 打印内容
printer.Print(a, b, "__NO_COLOR__", pt);
// 输出结果如下:
// 1 3 {x: 2, y: 4}
// ^ ^ ^
//红色 红色 无色
static std::string RED
红色
Definition color.hpp:31
作者
dreamy-xay
日期
2024-01-23

在文件 printer.hpp364 行定义.

◆ SetSplitString()

Printer & cm::Printer::SetSplitString ( const std::string & split_string)
inline

设置默认输出内容的分隔字符串

该函数用于设定永久生效的默认输出内容分隔字符串,设置后将影响后续所有的输出内容分隔方式。可将不同输出内容间添加自定义分隔符。

参数
split_string输出内容的分隔字符串
返回
类自身引用,方便链式调用
注意
默认情况下,输出内容的分隔字符串优先级低于关键字 "__SPLIT=,__"。换句话说,无论输出内容的分隔字符串是什么,如果在打印时添加了打印关键字 "__SPLIT=,__",则该函数调用后续参数的输出内容的分隔字符串将被临时设置为 ","。

示例
// 初始化打印器
cm::Printer printer; // 默认输出内容的分隔字符串为空格 " "
// 初始化需要打印的变量
int a = 1;
double b = 3;
cm::Point2i pt = {2, 4}; // cm::Point 重载了输出流运算符
// 打印内容
printer.Print(a, b, pt, "__SPLIT=,__"); // 由于 "__SPLIT=,__" 之后没有参数,所以关键词不生效
// 输出结果如下:1 3 {x: 2, y: 4}
// 修改默认输出内容的分隔字符串为 "/"
printer.SetSplitString("/");
// 打印内容
printer.Print(a, b, "__SPLIT=,__", pt);
// 输出结果如下:1/3,{x: 2, y: 4}
// 打印内容
printer.Print(a, b, "__SPLIT=<$SPLIT$_<__", pt, a, "__SPLIT={}__", b);
// 输出结果如下:1/3<$SPLIT$_<{x: 2, y: 4}<$SPLIT$_<1{}3
作者
dreamy-xay
日期
2024-01-23

在文件 printer.hpp410 行定义.


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