为什么C++11没有纳入Boost的所有类型特征?

Why didn't C++11 incorporate all of Boost's type traits?

本文关键字:类型 特征 C++11 为什么 Boost      更新时间:2023-10-16

正如您所知,Boost有很多类型特征。C++11将它们中的一些引入了标准,例如is_pointeris_base_of

还有一些像has_greaterhas_greater_equal这样的东西是C++11没有包含的。为什么不呢?是否有计划将其纳入下一个标准?标准委员会或Bjarne Stroustrup是否就此发表了一些论文?

C++11于2011年8月获得批准。操作员检测被添加到2011年11月发布的1.48.0的Boost类型特征中。

我不相信有人建议他们使用C++14,现在已经冻结了。IMNSHO,如果有人为C++17提出它,那就太好了。

我不知道这是否是S.O.的主题(可能更适合程序员?)无论如何,Boost和ISO是两个非常不同的东西。"标准"就是语言"is",包含了为任何目的描述语言所需的内容。Boost是一个将功能"扩展"到特定问题的库。

Boost委员会根据代码的"质量"(而不是主题)进行操作,标准根据"扩散"进行操作(假设给出了质量)。并不是所有"好"的东西都是"普通"的。当发现助推足够普遍时,它的作用就体现在标准中。并没有走"助推的方式"。它以编译器分发服务器必须满足的规范的形式存在。

Boost是以许多编译器都可以使用的方式编写的。标准库的编写方式是与之配套的编译器(或与其配套的编译器系列)更好地配合它(编译器系列实际上有一个数字)。优化和最终的低级别调整是不同的。

一些boost库成为标准的一部分并不是一个自动的结果。这只是一些"好主意"的巧合,这些想法在几乎任何代码中都是必要的。

也就是说,你的意图不一定是错误的:这可能发生在你问的特定主题上。但从助推到标准没有"迁移进展",也没有需要在助推之前达到的标准先决条件。