JSON for Modern C++ 3.10.0 发布

栏目: 软件资讯 · 发布时间: 4年前

内容简介:JSON for Modern C++ 3.10.0 已发布,这是推出 3.9.1 一年多后的首次更新。此版本增加了一些新功能、引入许多小的变化和修复错误。 其中值得注意的变化是增加了扩展的诊断功能,通过在引入json.hpp之前定义JSON_...

JSON for Modern C++ 3.10.0 已发布,这是推出 3.9.1 一年多后的首次更新。此版本增加了一些新功能、引入许多小的变化和修复错误。

其中值得注意的变化是增加了扩展的诊断功能,通过在引入json.hpp之前定义JSON_DIAGNOSTICS,JSON 指针会被添加到异常中,这有助于调试对象访问、数组索引或类型不匹配的问题。

另一个重要变化是增加完全超负荷工作的 CI,它会对每次 commit 执行大量检查,支持将来更频繁地发布新版本。

新功能

  • 通过向异常消息添加 JSON 指针来添加可扩展的诊断信息,指示无效类型错误或越界错误的确切位置。

     [json.exception.type_error.302] (/address/housenumber) type must be number, but is string
    

    库会在检测到的 JSON 值的本地上下文中抛出异常。此操作对于获取详细的诊断信息以及进行调试都比较困难。为了创建更好的诊断信息,每个 JSON 值都需要一个指向其父值的指针,以便可以创建全局上下文(即从根值到导致异常的值的路径)。然后将该全局上下文作为 JSON 指针提供。由于使用此全局上下文的代价是为每个 JSON 值存储一个额外的指针以及维护父关系的运行时开销,因此默认情况下会禁用扩展诊断。参阅文档了解更多信息。

  • 新增 GDB pretty printer 以方便读取 GDB 中的basic_json

  • 添加新的store值到 cbor_tag_handler_t,它可以将 CBOR 值的标签存储为二进制子类型

  • 添加对具有不可默认构造类型的容器的支持

错误修复

  • 修复ordered_json关闭异常时无法使用的回归错误
  • ordered_json增加了迭代器范围插入
  • 将二进制子类型的类型更改为std::uint64_t,如果没有给出子类型,subtype()函数的返回值已修复为文档值-1
  • 修复内部json_ref类型的移动构造函数,该构造函数在使用-fno-elide-constructors进行编译时会创建null
  • 修复容器在边缘情况下的input_adapter编译问题
  • 支持从std::byte容器进行解析
  • to_json重用 JSON 值的情况下修复内存泄漏问题
  • EOF找不到符号的情况下修复编译错误
  • 修复在 libc++ 上使用NLOHMANN_JSON_SERIALIZE_ENUM搭配ordered_json时的编译错误

所有变更均向后兼容,点此查看完整更新内容


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

计算机图形学

计算机图形学

[美]PeterShirley / 高春晓、赵清杰、张文耀 / 人民邮电出版社 / 2007-6 / 49.00元

本书是国外高校采用率很高的计算机图形学教材,共分为26章,全面系统地讲解了计算机图形学的基本概念和相关技术。书中先介绍图形学相关的数学知识,然后依次讲解图形学的光栅算法、三三维观察、隐藏面消除、光照、纹理、绘制等算法和理论,并介绍可视感知、计算机动画、基于图像的绘制、可视化以及构建交互式图形应用等。 本书可作为信息技术等相关专业本科生、研究生计算机图形学课程的教材,也可以作为计算机图形学工作......一起来看看 《计算机图形学》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

MD5 加密
MD5 加密

MD5 加密工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具