我有这样的代码:
boost::variant<b2DistanceJointDef, b2FrictionJointDef,
b2GearJointDef, b2MouseJointDef, b2PrismaticJointDef, b2PulleyJointDef,
b2RevoluteJointDef, b2RopeJointDef, b2WeldJointDef, b2WheelJointDef> prmJointDef;
b2DistanceJointDef &prmDistaceJointDef = boost::get<b2DistanceJointDef>(prmJointDef);
Run Code Online (Sandbox Code Playgroud)
错误是:
source\Scene\Components\JointComponent.cpp:51:96: error: no matching function for call to 'get(boost::variant<b2DistanceJointDef, b2FrictionJointDef, b2GearJointDef, b2MouseJointDef, b2PrismaticJointDef, b2PulleyJointDef, b2RevoluteJointDef, b2RopeJointDef, b2WeldJointDef, b2WheelJointDef>&)'
\source\Scene\Components\JointComponent.cpp:51:96: note: candidates are:
boost/optional/optional.hpp:626:30: note: template<class T> typename boost::optional::reference_const_type boost::get(const boost::optional<T>&)
boost/optional/optional.hpp:634:24: note: template<class T> typename boost::optional::reference_type boost::get(boost::optional<T>&)
boost/optional/optional.hpp:644:30: note: template<class T> typename boost::optional::pointer_const_type boost::get(const boost::optional<T>*)
boost/optional/optional.hpp:652:24: note: template<class T> typename boost::optional::pointer_type boost::get(boost::optional<T>*)
Run Code Online (Sandbox Code Playgroud)
这里有什么不对?
getBoost.Variant提供的特定重载可通过#include <boost/variant/get.hpp>.
或者,boost/variant.hpp提供Boost.Variant的大多数(如果不是全部)标题,但我不会在小玩具程序之外推荐它.细粒度的标题很不错.
| 归档时间: |
|
| 查看次数: |
1015 次 |
| 最近记录: |