5

如你所知,Boost 有很多类型特征。C++11 将其中一些引入了标准,例如is_pointerand is_base_of

还有其他类似has_greaterhas_greater_equal,C++11 没有包含。为什么不?是否有计划将它们包含在下一个标准中?标准委员会或 Bjarne Stroustrup 有没有关于这方面的论文?

4

2 回答 2

11

C++11 于 2011 年 8 月获得批准。2011 年 11 月发布的 1.48.0 的 Boost Type Traits 添加了运算符检测。

我不相信有人为 C++14 提出了它们,现在已经冻结了。IMNSHO 如果有人为 C++17 提出它会很好。

于 2013-06-26T19:37:53.957 回答
4

我不知道这是否是 SO 的主题(可能更多的是程序员?)无论如何,Boost 和 ISO 是两个非常不同的东西。“标准”是语言“是”的内容,包含为任何目的表征语言所需的内容。Boost 是一个将功能“扩展”到特定问题的库。

Boost委员会对代码的“质量”(而不是其主题)进行操作,标准对“传播”进行操作(假设质量是给定的)。并非所有“好”的东西也都是“普通”的。当发现标准足够普遍时,标准中的增强功能。并且不会“像 boost 那样做”。它以编译器分发者必须满足的规范的形式出现。

Boost 以许多编译器可以使用的方式编写。标准库的编写方式与其附带的编译器(或它附带的编译器系列)配合得更好(并且几乎有一个数字,因为编译器系列可以在那里)。优化的类型和最终的低级调整是不同的。

一些 boost 库成为标准的一部分这一事实并不是一个自动的结果。这只是在几乎任何代码中都需要的一些“好主意”的巧合。

也就是说,您的意图不一定是错误的:它可能发生在您询问的特定主题上。但是没有从 boost 到标准的“迁移进度”,也没有标准的先决条件需要在 boost 之前。

于 2013-06-26T19:07:29.523 回答