0

我打算将 3D 矢量与异构数据一起使用。我找到了使用boost::variantor的解决方案boost.any。但是,我找不到任何简单的教程。我应该包括什么库?任何人都可以给我简单的教程或示例吗?

4

2 回答 2

5

Boost.Variant 和 Boost.Any 有不同的用例。

Boost.Variant 是关于总和类型:您的类型代表不同类型的联合,其中之一:

  • 要求:了解所有可能类型的列表
  • 优点:你可以查询它来知道当前哪个类型是活动的,并且在编译时检查所有操作。

另一方面,Boost.Any 是最好的类型擦除。它可以容纳任何类型,甚至是像int.

  • 要求:知道其中包含的类型以对其进行任何操作
  • 优点:只是传递的代码boost::any可以忽略它可以保存的类型
于 2013-06-22T14:52:59.650 回答
1

在 boost 网站上肯定有一个相对简单的教程/参考( boost variantboost any)。

至于你应该包括的库:那当然是提升。具体来说,您需要的头文件是boost/variant.hppboost/any.hpp. 这两个库都是仅标头库。这意味着您应该只安装 boost(如果您还没有安装)。

于 2013-06-22T08:51:45.147 回答