Boost C++ 库

...世界上评价最高、设计最精良的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu, C++ Coding Standards

Boost.OpenMethod :: Boost.OpenMethod - Boost C++ 函数库

Boost.OpenMethod

Boost.OpenMethod 在 C++17 及以上版本中实现了开放(多)方法。

特性

  • 单重分派的速度可与等效的虚函数调用媲美。

  • 多重分派以常数时间完成(对于给定数量的虚参数)。

  • 无冗余的多重分派表。

  • 与标准智能指针互操作,可扩展至其他指针类类型。

  • 默认情况下不处理异常。

  • 用于方便的宏接口。

  • 用于与模板互操作的无宏接口。

  • 用于替代 RTTI 系统、错误处理、vptr 放置等的自定义点。

  • 仅头文件。

要求

该库需要支持 C++17 或更高版本的优化编译器。

已测试编译器

Boost.OpenMethod 已在以下编译器上进行测试:

  • clang: 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20

  • gcc: 8, 9, 10, 11, 12, 13, 14, 15

  • msvc: 14.3

  • icpx

以及在以下平台上:

  • Linux

  • macOS

  • Windows

  • s390x

质量保证

该库的开发基础设施包括以下提交即分析:

  • 覆盖率报告

  • Clang 静态分析器

  • 在 Drone.io 和 GitHub Actions 上进行编译和测试

致谢

我衷心感谢 C++ Alliance 的支持,特别是 Joaquín M. López Muñoz 鼓励我提交我的库,并成为第一个认可它的人;以及 Dmitryi Arkhipov 自愿担任审查经理。

感谢 Boost 社区的成员发表了正式审查意见:

  • Andrzej Krzemienski

  • Christian Mazakas

  • Joaquin M López Muñoz

  • Klemens Morgenstern

  • Ruben Perez

  • Yannick Le Goc

同时感谢 Steven Watanabe 提供了有见地的反馈和建议,以及所有发表评论和建议的人。

这项工作受到了以下论文的强烈影响:

最后,感谢马德里卡洛斯三世大学的 J.D. Garcia 教授组织了“使用 std::cpp”会议,并向我介绍了 Joaquín。