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

Are there any plans for a Standard type-erasing container?

本文关键字:擦除 类型 有计划 标准 是否      更新时间:2023-10-16

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

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

  1. 是否有什么特别的原因(性能损失,缺乏鲁棒性)?

  2. 是否有任何建议将这些功能(例如boost::any)纳入下一个标准库?

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

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

  2. 有一个刚刚更新的工作草案"c++扩展库基础",其中提出(除其他功能外)boost::any为标准。

  3. std::function

它们都作为std::any出现在c++ 17中,只是有一些不同。以及其他有用的类型构造函数:std::optionalstd::variant