小编典典

哪些 Boost 功能与 C++11 重叠?

all

几年前我把我的 C++ 技能搁置了,现在看来,当我再次需要它们时,情况已经发生了变化。

我们现在有了 C++11,我的理解是它与许多 Boost 特性重叠。

是否有一些总结这些重叠的地方,哪些 Boost 库将成为遗留库,推荐使用哪些 C++11 特性而不是 boost 特性,哪些最好不要?


阅读 81

收藏
2022-07-09

共1个答案

小编典典

可被 C++11 语言功能或库替换

TR1(如果是 TR1
库,它们会在文档中标记)

从 C++11 向后移植的功能:

可替换为 C++17 语言功能:

  • String_ref ——std::string_view
  • 文件系统—— <文件系统>(文件系统TS)
  • 可选——std::optional(库基础 TS v1
  • Any -std::any(库基础 TS v1)
  • 数学/特殊函数—— <cmath>特殊数学 IS),见下表
    • 贝塔函数
    • (正常/关联/球面)勒让德多项式
    • (正常/关联)勒让德多项式
    • Hermite 多项式
    • Bessel (J / Y / I / K) 函数(Y 在 C++ 中称为 Neumann 函数)
    • 球面贝塞尔 (j / y) 函数
    • (第一/第二/第三类)的(不完全/完全)椭圆积分
    • 黎曼 zeta 函数
    • 指数积分
  • 变体——std::variant ( P0088R2 )

标准团队仍在努力:

可以使用可变参数模板修剪或删除大部分MPL
词法转换的一些常见用例可以用
std::to_string 和 std::sto X 代替。

一些 Boost 库与 C11
相关,但也有更多扩展,例如Boost.Functional/Hash包含hash_combine
C
11
中没有的相关函数,Boost.Chrono具有
I/O 和舍入以及许多其他时钟,等等,所以你可能仍然想在真正解雇它们之前先看看提升的那些。

2022-07-09