是否有标准型擦除容器的计划?

时间:2014-05-24 09:34:05

标签: c++ boost c++14

多年来,将 boost 功能集成到标准库中的过程变得明显。

似乎有用&实际的部分提升,即提供类型擦除的容器,已经逃过了这个过程。

  1. 这有什么特别的原因(性能损失,缺乏稳健性)吗?

  2. 是否有任何提案与在下一个标准库中合并此类功能(例如boost::any)有关?

  3. shared_pointer使用类型擦除,今天的标准库还有其他设施,我们可以利用这种技术吗?

2 个答案:

答案 0 :(得分:3)

  1. 类型擦除通常会引入额外的间接,并最终引入虚拟函数调用,从而降低性能。

  2. 最近刚刚更新的工作草案" C ++扩展库基础知识"提议(除其他功能外)boost::any for the standard

  3. std::function将是另一个例子。

答案 1 :(得分:1)

Boost.Any将其作为std::any转换为C ++ 17,但有一些差异。与其他有用的类型构造函数一起使用:std::optionalstd::variant