注意:相应的要点是here。在
在一个Siggd+C++/Python应用程序中,我想创建一个函数,它接受抽象基类对象的^ {< CD1>}/Python列表,例如
#ifndef MYTEST_HPP
#define MYTEST_HPP
#include <iostream>
#include <vector>
#include <memory>
class MyBaseClass {
public:
virtual void eval() const = 0;
};
class MyTestClass: public MyBaseClass {
public:
virtual void eval() const {
std::cout << "MyTestClass::eval()" << std::endl;
}
};
void
mytest(const std::vector<std::shared_ptr<MyBaseClass>> & a) {
std::cout << "length: " << a.size() << std::endl;
}
#endif // MYTEST_HPP
注意,我们这里使用的是std::shared_ptr
。将此用于
编译,但在运行时失败。从
import mytest
a = mytest.MyTestClass()
mytest.mytest([a])
一个人得到
python: /tmp/l/build/mytestPYTHON_wrap.cxx:2385: int SWIG_Python_ConvertPtrAndOwn(PyObject*, void**, swig_type_info*, int, int*): Assertion `own' failed.
Aborted (core dumped)
有什么提示吗?在
目前没有回答
相关问题 更多 >
编程相关推荐