库元数据
一个模块可以包含一个可选文件,用于描述它所包含的库。该文件位于 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
- 输入/输出
- 跨语言
- 跨语言支持
- 模拟
- 语言特性模拟
- 内存
- 内存
- 解析
- 解析
- 模式
- 模式和惯用法
- 编程
- 编程接口
- 状态
- 状态机
- 系统
- 系统
- 杂项
- 杂项
- 解决方法
- 损坏的编译器解决方法