Skip to content

NBT_CPP

Choose a tag to compare

@chenjunfu2 chenjunfu2 released this 24 Feb 05:26
· 196 commits to master since this release

重大更新

vcpkg 2.0.0

注意:1.0.3作为修改过渡版本,版本命名规则有误,理应作为与2.0.0合并的更新,其中对于接口有部分破坏性命名修改

NBT_List.hpp

  • 允许存储复合类型而非单一类型限定
  • 删除了多余的接口与类型限定校验
    • 移除GetTag()/SetTag()方法
    • 移除所有带NoCheck_T参数的构造函数
    • 接口修改方法改为返回引用而非迭代器
    • 移除带bNoCheck模板参数的插入/修改函数
  • 新增了Resize的一个重载

注意:如果你在旧版中使用GetTag()/SetTag(),那么在新版本中,你需要修改为对列表的每个成员使用NBT_Node的接口进行判断/设置类型

NBT_Print.hpp

  • 新增NBT_Print_Level枚举
  • 新增仿函数重载,允许控制输出等级(Info/Warn/Err)
  • 允许传入NULL文件指针以禁用特定等级的输出
  • 默认仿函数运算符使用Info输出等级

NBT_Read.hpp && NBT_Write.hpp

  • 已支持包含混合类型元素的列表
  • 在写出时自动使用NBT_Type::Compound封装不一致类型
  • 在读取时可选自动解包使用NBT_Type::Compound封装的不一致类型
  • 使用错误等级输出信息,用以区分警告与错误信息

注意:如果你实现了NBT_Print的旧版模拟接口并传递给NBT_Read/NBT_Write接口,那么在新版本中,你需要增加允许控制输出等级的仿函数重载

NBT_Type.hpp

  • 新增 IsNumericTag、IsIntegerTag、IsFloatingTag、IsArrayTag 、IsContainerTag、IsStringTag、IsListTag、IsCompoundTag运行时标签判断
  • 新增 IsNumericType_V、IsIntegerType_V、IsFloatingType_V、IsArrayType_V 、IsContainerType_V、IsStringType_V、IsListType_V、IsCompoundType_V编译期类型判断

NBT_String.hpp

  • 增加从它继承的父类类型构造它本身的接口
  • 增加从 std::basic_string_view<char>、std::basic_string_view<char8_t>、std::basic_string_view<char16_t>、std::basic_string_view<wchar_t> 构造的接口

NBT_Helper.hpp

  • 修复输出到文件时,与\b残留的问题

其它

  • 部分Bug修复
  • 部分注释修复
  • 文档更新