boost :: variant-如何分配值

时间:2018-09-17 11:01:50

标签: c++ boost-variant

我有一个boost变体,我想给它赋值。 代码看起来像..

boost::variant <int, std::vector<int>,std::vector<float> > MyVariant;

如何将值赋给int,int的向量和float的向量。 简单分配无法正常工作。

1 个答案:

答案 0 :(得分:2)

这似乎很简单:

#include <boost/variant.hpp>
#include <vector>

int main()
{
    using MyVariant = boost::variant<int, std::vector<int>, std::vector<float>>;
    MyVariant m;
    m = 1;
    m = std::vector<int>{1, 2, 3};
    m = std::vector<float>{1.f, 2.f, 3.f};
    return 0;
}

使用C ++ 17编译器,您可以使用std::variant代替boost::variant