如何正确使用boost :: variant?

Haw*_*awk 0 c++

我打算将3D矢量与异构数据结合使用.我找到了使用boost::variant或的解决方案boost.any.但是,我找不到任何简单的教程.我应该包括哪些库?有人可以给我简单的教程或例子吗?

Mat*_* M. 5

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

Boost.Variant是关于sum类型的:你的类型代表不同类型的联合,其中一个是:

  • 要求:了解所有可能类型的列表
  • 优点:您可以查询它以了解当前哪种类型处于活动状态,并在编译时检查所有操作.

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

  • 要求:了解其中的类型以对其进行任何操作
  • 优点:只是传递的代码boost::any可能会忘记它可以容纳的类型