这段代码中,'MyVariant v3 = a;' 这行代码是有问题的。

问题在于 'boost::variant' 的构造函数需要使用 'boost::in_place' 来指定要构造的类型,而不能直接使用变量进行构造。

正确的写法应该是:

MyVariant v3 = V1(a);

或者:

MyVariant v3(boost::in_place<V1>, a);

这样可以正确地将变量 'a' 的值构造为 'MyVariant' 中的 'V1' 类型。

C++ Boost Variant:使用 boost::in_place 初始化子类型

原文地址: http://www.cveoy.top/t/topic/AmC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录