我有一个boost变体,我想给它赋值。 代码看起来像..
boost::variant <int, std::vector<int>,std::vector<float> > MyVariant;
如何将值赋给int,int的向量和float的向量。 简单分配无法正常工作。
答案 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
。