chenjunfu2-nbt-cpp v2.1.0
一个基于CPP20的NBT(Named Binary Tag)库
载入中...
搜索中...
未找到
NBT_Print类 参考

一个用于打印信息到指定的C文件对象的工具类,作为库内大部分存在信息输出接口的默认实现。 实际可被使用此类为默认值参数的函数的调用方,以类似此类的仿函数参数重写的其它类型替换, 比如调用方实现了一个My_Print,只要重载了仿函数调用运算符,且参数与此类的仿函数调用运算符一致, 则可以直接替换此类并传递给目标参数。 更多...

#include <NBT_Print.hpp>

Public 成员函数

 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等级输出信息

模板参数
...Args变参模板
参数
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

函数调用运算符重载,用于将类作为仿函数调用,通过使用指定等级输出信息

模板参数
...Args变参模板
参数
lvl用于指示信息打印等级
fmt接受std::format_string的format
...args变参,与string的format对应
注解
函数不能也不应该抛出任何异常,因为函数可能用于异常信息打印,不能出现二次异常, 本实现中如果std::format出现任何二次异常,则放弃打印自定义信息,从c标准io的printf输出新抛出的异常信息, 如果再次失败,则不做处理,因为异常可能已经致命,导致无法执行任何代码。

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