Boost C++ 库

...世界上最受推崇和精心设计的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu, C++ 编码标准

库元数据

一个模块可以包含一个可选文件,用于描述它所包含的库。该文件位于 meta/libraries.json。它要么包含一个用于单个库的 JSON 对象,要么包含一个用于任意数量库的 JSON 对象列表。

例如,对于单个库

{
    "key": "unordered",
    "name": "Unordered",
    "authors": [ "Daniel James" ],
    "maintainers": [ "Daniel James <dnljms -at- gmail.com>" ],
    "description": "Unordered associative containers.",
    "category": [
        "Containers"
    ]
}

多个库的示例

[
    {
        "key": "functional",
        "name": "Functional",
        "authors": [ "Mark Rodgers" ],
        "description": "The Boost.Function library contains a family of class templates that are function object wrappers.",
        "category": [
            "Function-objects"
        ]
    },
    {
        "key": "functional/factory",
        "name": "Functional/Factory",
        "authors": [ "Tobias Schwinger" ],
        "maintainers": [ "Tobias Schwinger <tschwinger -at- isonews2.com>" ],
        "description": "Function object templates for dynamic and static object creation",
        "documentation": "factory/",
        "category": [
            "Function-objects"
        ]
    },
]

JSON 字段

key

这是库的唯一标识符,通常是从 libs 目录到它的路径。

name

库的人类可读名称

status

用于具有特殊状态的库,当前可以具有值 deprecated(用于已弃用的库)和 hidden(用于不应向用户显示的库)。

authors

字符串或字符串列表,包含作者的姓名

description

对库功能的简要描述

category

库所属的类别列表,完整列表如下。

documentation

文档的路径,默认为模块的根目录。

cxxstd

库中所有或绝大多数功能可用的最低 C++ 标准编译级别。可能的值为

  • 98 = C++98
  • 03 = C++98/C++03
  • 11 = C++11
  • 14 = C++14
  • 17 = C++17
  • 20 = C++20

该级别仅指示最低级别,这意味着当在该级别或更高级别编译时可以使用该库的功能。库中可能有一些功能需要比此值指示的更高的 C++ 标准编译级别,但是有关该特定功能的信息将在该库的文档中为最终用户提供。如果库没有此字段,则表示最终用户必须阅读库文档才能了解使用该库所需的 C++ 标准编译级别。

可用类别

字符串
字符串和文本处理
容器
容器
迭代器
迭代器
算法
算法
函数对象
函数对象和高阶编程
泛型
泛型编程
元编程
模板元编程
预处理器
预处理器元编程
并发
并发编程
数学
数学和数值
正确性
正确性和测试
错误处理
错误处理和恢复
数据
数据结构
领域
特定领域
图像处理
图像处理
IO
输入/输出
跨语言
跨语言支持
模拟
语言特性模拟
内存
内存
解析
解析
模式
模式和惯用法
编程
编程接口
状态
状态机
系统
系统
杂项
杂项
解决方法
损坏的编译器解决方法