本次发布
依赖项
Boost PolyCollection 库
Boost.PolyCollection:用于存储多态对象的快速容器。
通常,多态对象无法直接存储在普通容器中,需要通过间接指针访问,这会导致 CPU 缓存和分支预测方面的性能问题。Boost.PolyCollection 实现了一种新颖的数据结构,该结构能够在没有此类间接的情况下连续存储多态对象,从而提供值语义用户界面和更好的性能。提供了四种多态容器:
分别处理经典的基类/派生类或 OOP 多态性,以 std::function
为精神的函数包装,由 Boost.TypeErasure 实现的所谓鸭子类型,以及类似 variant 的封闭多态性。
了解 Boost.PolyCollection
安装 Boost.PolyCollection
- 下载 Boost 即可开始使用(这是一个仅头文件库,无需编译)。
- 使用 Conan 2:如果您还没有安装,请在您的
conanfile.txt
中添加 Boost 条目(示例要求至少 Boost 1.86)
[requires]
boost/[>=1.86.0]
- 如果您不使用任何编译的 Boost 库,以下操作将跳过编译
[options]
boost:header_only=True
- 使用 vcpkg:执行命令
vcpkg install boost-poly-collection
- 使用 CMake:Boost CMake 支持基础设施允许您直接使用 CMake 下载、构建和使用所有 Boost 或特定库。
支持
- 加入 cpplang.slack.com 上的 **#boost** 讨论组(如果您还不是该工作区的成员,请 申请邀请)
- 在 Boost 用户邮件列表中提问(请在主题行开头添加
[poly_collection]
标签) - 提交问题
贡献
- 欢迎向 develop 分支提交拉取请求。请注意,提交补丁即表示您同意根据 Boost Software License, Version 1.0 许可您的修改。