为什么C++11没有纳入Boost的所有类型特征?
Why didn't C++11 incorporate all of Boost's type traits?
正如您所知,Boost有很多类型特征。C++11将它们中的一些引入了标准,例如is_pointer
和is_base_of
。
还有一些像has_greater
和has_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库成为标准的一部分并不是一个自动的结果。这只是一些"好主意"的巧合,这些想法在几乎任何代码中都是必要的。
也就是说,你的意图不一定是错误的:这可能发生在你问的特定主题上。但从助推到标准没有"迁移进展",也没有需要在助推之前达到的标准先决条件。
- 根据C++标准的定义实现"is_similar"类型特征
- C++类型特征,以查看是否可以<uint32_t>对类型"K"的任何变量调用"static_cast(k)"
- C ++类型特征:确保子类实现方法
- 根据类型特征更改函数定义?
- 如何使用类型特征将函数的通用引用参数限制为 r 值引用?
- 在C++中创建新的类型特征
- 如何构造一个类型特征,可以判断一个类型的私有方法是否可以在另一个类型的构造函数中调用?
- std::begin-类型特征中未考虑用户定义的重载
- 在类型特征修改后,无法限定类型
- 使用类型特征的部分类专用化
- 为什么不调用预期的函数?我是否对类型特征的理解不正确?
- 了解类型特征的体系结构
- 为什么使用某些类型特征的模板类型会导致模板扣除失败
- 有了C++类型特征,有没有办法避免铸造
- 哪种类型特征表明该类型是可分配的?(元组,对)
- 一种类型特征,标识哪个类提供通过重载解析选择的函数
- 如何使用类型特征正确推断引用的参数
- 如何通过扩展以下类型特征来删除 decltype(&MyClass::funct) 部分?
- 从标准库类型特征继承
- 为什么类型特征不适用于命名空间范围内的类型?