我正在尝试将这两个转换器添加到我的python boost库版本中。你知道吗
std::tr1::shared_ptr<sbcp::Device> cast_pointer_motor(std::tr1::shared_ptr<sbcp::amarsi::MotorDriver> driver){
return std::tr1::static_pointer_cast<sbcp::Device>(driver);
}
std::tr1::shared_ptr<sbcp::Device> cast_pointer_power(std::tr1::shared_ptr<sbcp::amarsi::Power> driver){
return std::tr1::static_pointer_cast<sbcp::Device>(driver);
}
def("deviceMotorPtrCast",&cast_pointer_motor);
def("devicePowerPtrCast",&cast_pointer_power);
它们几乎相同,只是函数参数中的模板不同。你知道吗
但是,在用python加载此库时,出现了一个异常:
test.py:1: RuntimeWarning: to-Python converter for std::tr1::shared_ptr<sbcp::Device> already registered; second conversion method ignored.
这就导致了更深层的问题
TypeError: No to_python (by-value) converter found for C++ type: std::tr1::shared_ptr<sbcp::amarsi::Power>
那么,我怎样才能确信这两个转换器是不同的呢?我做错什么了?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐