C++ Boost Variant:使用 boost::in_place 初始化子类型
这段代码中,'MyVariant v3 = a;' 这行代码是有问题的。
问题在于 'boost::variant' 的构造函数需要使用 'boost::in_place' 来指定要构造的类型,而不能直接使用变量进行构造。
正确的写法应该是:
MyVariant v3 = V1(a);
或者:
MyVariant v3(boost::in_place<V1>, a);
这样可以正确地将变量 'a' 的值构造为 'MyVariant' 中的 'V1' 类型。
原文地址: http://www.cveoy.top/t/topic/AmC 著作权归作者所有。请勿转载和采集!