使用boost.any库有什么好处?你能给我一些现实生活中的例子吗?为什么不能通过在对象的层次结构的根中具有一些泛型类型并使用该基类型创建容器来实现相同的功能?
发布于 2009-04-23 11:53:42
我认为Boost.Variant应该始终是首选,因为它是非侵入性的,并且仍然需要非常结构化的编程。
但我猜boost.any背后的主要思想是提供java和c#对象类型的等价物。这是一种说“是的,我们可以”的方式!:-)
发布于 2009-04-23 09:49:10
boost::any将很高兴地存储整数和浮点数,这些类型显然没有基类。您可以使用它的一个真实示例是高级解释型语言的虚拟机。您的“函数”对象将需要一个参数数组。这可以在幕后通过std::list<boost::any>轻松实现。
发布于 2009-04-23 17:41:21
我们在一个属性映射(std::map<std::string, boost::any>)中使用了它,在一个简单的、扁平的数据空间中动态地存储了很多东西。
大多数情况下,我们要么存储智能ptr-to-scriptable对象或字符串,要么存储一些其他类型(浮点数、vec3f、矩阵和其他非标准对象)的条目。
它非常适合于向c++添加更多动态功能,或者只要您想要一些类型擦除,就可以将任何类型的数据添加到对象中。
https://stackoverflow.com/questions/781001
复制相似问题