一个用于打印信息到指定的C文件对象的工具类,作为库内大部分存在信息输出接口的默认实现。 实际可被使用此类为默认值参数的函数的调用方,以类似此类的仿函数参数重写的其它类型替换, 比如调用方实现了一个My_Print,只要重载了仿函数调用运算符,且参数与此类的仿函数调用运算符一致, 则可以直接替换此类并传递给目标参数。
更多...
#include <NBT_Print.hpp>
|
| | NBT_Print (FILE *_pfOutputInfo=stdout, FILE *_pfOutputWarn=stderr, FILE *_pfOutputErr=stderr) |
| | 通过c文件对象构造
|
|
| ~NBT_Print (void)=default |
| | 默认析构
|
| template<typename... Args> |
| void | operator() (NBT_Print_Level lvl, const std::format_string< Args... > fmt, Args &&... args) noexcept |
| | 函数调用运算符重载,用于将类作为仿函数调用,通过使用指定等级输出信息
|
| template<typename... Args> |
| void | operator() (const std::format_string< Args... > fmt, Args &&... args) noexcept |
| | 函数调用运算符重载,用于将类作为仿函数调用,默认使用Info等级输出信息
|
一个用于打印信息到指定的C文件对象的工具类,作为库内大部分存在信息输出接口的默认实现。 实际可被使用此类为默认值参数的函数的调用方,以类似此类的仿函数参数重写的其它类型替换, 比如调用方实现了一个My_Print,只要重载了仿函数调用运算符,且参数与此类的仿函数调用运算符一致, 则可以直接替换此类并传递给目标参数。
- 注解
- 输出格式里的fmt为std::format格式
◆ NBT_Print()
| NBT_Print::NBT_Print |
( |
FILE * | _pfOutputInfo = stdout, |
|
|
FILE * | _pfOutputWarn = stderr, |
|
|
FILE * | _pfOutputErr = stderr ) |
|
inline |
通过c文件对象构造
- 参数
-
| _pfOutputInfo | 普通信息输出的C文件对象(通常为stdout,可以为NULL) |
| _pfOutputWarn | 警告信息输出的C文件对象(通常为stderr,可以为NULL) |
| _pfOutputErr | 错误信息输出的C文件对象(通常为stderr,可以为NULL) |
- 注解
- 类只引用文件对象,而非持有,类不会释放文件对象, 且文件对象的生命周期必须大于此类,否则行为未定义
-
如果任意构造参数为NULL,则与其对应等级的输出会被取消
◆ operator()() [1/2]
template<typename... Args>
| void NBT_Print::operator() |
( |
const std::format_string< Args... > | fmt, |
|
|
Args &&... | args ) |
|
inlinenoexcept |
函数调用运算符重载,用于将类作为仿函数调用,默认使用Info等级输出信息
- 模板参数
-
- 参数
-
| fmt | 接受std::format_string的format |
| ...args | 变参,与string的format对应 |
- 注解
- 函数不能也不应该抛出任何异常,因为函数可能用于异常信息打印,不能出现二次异常, 本实现中如果std::format出现任何二次异常,则放弃打印自定义信息,从c标准io的printf输出新抛出的异常信息, 如果再次失败,则不做处理,因为异常可能已经致命,导致无法执行任何代码。
◆ operator()() [2/2]
template<typename... Args>
| void NBT_Print::operator() |
( |
NBT_Print_Level | lvl, |
|
|
const std::format_string< Args... > | fmt, |
|
|
Args &&... | args ) |
|
inlinenoexcept |
函数调用运算符重载,用于将类作为仿函数调用,通过使用指定等级输出信息
- 模板参数
-
- 参数
-
| lvl | 用于指示信息打印等级 |
| fmt | 接受std::format_string的format |
| ...args | 变参,与string的format对应 |
- 注解
- 函数不能也不应该抛出任何异常,因为函数可能用于异常信息打印,不能出现二次异常, 本实现中如果std::format出现任何二次异常,则放弃打印自定义信息,从c标准io的printf输出新抛出的异常信息, 如果再次失败,则不做处理,因为异常可能已经致命,导致无法执行任何代码。
该类的文档由以下文件生成: