如你所知,Boost有很多类型特征。 C ++ 11将它们中的一些带到了标准,例如is_pointer
和is_base_of
。
C ++ 11没有包含has_greater
和has_greater_equal
之类的其他内容。为什么不?有没有计划将它们纳入下一个标准?标准委员会或Bjarne Stroustrup是否有一些论文?
答案 0 :(得分:11)
C ++ 11于2011年8月获得批准。操作员检测被添加到Boost Type Traits中,为1.48.0,于2011年11月发布。
我不相信有人为C ++ 14提出过它们,现在已经冻结了。如果有人为C ++ 17提出它会很好。
答案 1 :(得分:4)
我不知道这是否是S.O.的话题。 (在程序员中可能更多?) 无论如何,Boost和ISO是两个非常不同的东西。 “标准”是语言“IS”,包含为任何目的表征语言所需的内容。 Boost是一个将功能“扩展”到特定问题的库。
Boost委员会对代码的“质量”进行操作(不是关于其主题),标准以“差价”运作(假设质量已经给出)。并非所有“好”的东西也都是“普通的”。当标准被发现足够普遍时,标准会有什么推动作用。并没有“增强做到这一点的方式”。它以编译器分发者必须满足的规范的形式出现。
Boost是以许多编译器可以使用它的方式编写的。 标准库的编写方式与它所使用的编译器(或它所使用的编译器系列)相比更好(并且编译器系列可以在那里实际存在一些数字)。优化和最终的低级别调整是不同的。
一些提升库成为标准的一部分并不是一个自动结果。这只是一些“好主意”巧合的问题,几乎任何代码都需要它。
那就是说,你的意图并不一定是错的:它可能发生在你提出的特定主题上。但是从提升到标准没有“迁移进展”,也没有标准先决条件需要在提升之前。