首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >boost any库的典型用法是什么?

问boost any库的典型用法是什么?
EN

Stack Overflow用户
提问于 2009-04-23 09:41:38
回答 5查看 14.2K关注 0票数 21

使用boost.any库有什么好处?你能给我一些现实生活中的例子吗?为什么不能通过在对象的层次结构的根中具有一些泛型类型并使用该基类型创建容器来实现相同的功能?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-04-23 11:53:42

我认为Boost.Variant应该始终是首选,因为它是非侵入性的,并且仍然需要非常结构化的编程。

但我猜boost.any背后的主要思想是提供java和c#对象类型的等价物。这是一种说“是的,我们可以”的方式!:-)

票数 8
EN

Stack Overflow用户

发布于 2009-04-23 09:49:10

boost::any将很高兴地存储整数和浮点数,这些类型显然没有基类。您可以使用它的一个真实示例是高级解释型语言的虚拟机。您的“函数”对象将需要一个参数数组。这可以在幕后通过std::list<boost::any>轻松实现。

票数 23
EN

Stack Overflow用户

发布于 2009-04-23 17:41:21

我们在一个属性映射(std::map<std::string, boost::any>)中使用了它,在一个简单的、扁平的数据空间中动态地存储了很多东西。

大多数情况下,我们要么存储智能ptr-to-scriptable对象或字符串,要么存储一些其他类型(浮点数、vec3f、矩阵和其他非标准对象)的条目。

它非常适合于向c++添加更多动态功能,或者只要您想要一些类型擦除,就可以将任何类型的数据添加到对象中。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/781001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档