boost::variant - 如何分配值



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

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

如何将值分配给整数、整数向量和浮点数向量。 简单分配不起作用。

这似乎很简单:

#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

最新更新