为通用c结构创建boost - variant类型

时间:2018-05-22 18:33:27

标签: c++ boost-variant

我正在尝试创建一个boost :: variant对象,除了其他数据类型之外,它还可以包含任何C结构 例如 - 这是我想要为我定义的任何结构实现的目标:

typdef struct c
{
 int a ;
 double b;
}c;

boost::variant<??>  result;
c elem={1,2.0};
result = elem;

有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:1)

从技术上讲,您可以使用boost::any作为boost::variant的一种类型来实现它。但这没有意义。你真正应该为无界类型做的是直接使用boost::any(或std::any)。 variant适用于有限类型。