繁体   English   中英

`boost :: any`和`std :: any`之间的区别

[英]Differences between `boost::any` and `std::any`

C ++ 17引入了对象容器std::any ,基于boost库boost::any 我的问题是:标准化any与升级版本相同,还是存在差异?

关于variant已经发布了一个类似的问题 ,在这种情况下存在一些差异,但我找不到any 关于variant参考。


编辑:我能看到的区别是方法的可用性emplace 不仅仅是API的差异我对行为和保证之间的差异感兴趣。 例如,不同的分配对我来说意义重大。

我对行为和保证之间的差异感兴趣。

没有任何行为差异; 并不是的。 它们对ValueType具有相同的要求(可复制构造,并且不会发出异常的析构函数)。 它们都对它们存储的值提供相同的操作,具有几乎相同的异常保证。

主要区别在于boost::any的实现目前没有实现小对象优化,而std::any实现可能提供它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM