3
一直试图通过引用传递向量的C++模板方法,但我得到的所有返回的是一个空列表,显然参数是通过值传递的。通过引用模板方法传递向量
我使用用Cython 0.18 &的Python 2.7
任何想法?
C++侧
class VectByRef
{
public:
VectByRef::VectByRef();
template<typename T>
void GetVector(T& var);
}
template<typename T>
void VectByRef::GetVector(T& var)
{
var.push_back(1);
var.push_back(2);
var.push_back(3);
}
用Cython侧
cdef extern from "VectByRef.h":
cdef cppclass VectByRef:
VectByRef() except
vector[cython.int] GetVector(vector[cython.int])
def getVector(self):
cdef vector[cython.int] resultVectInt
self._vectByRef.GetVector(<vector[cython.int]> resultVectInt)
print(resultVectInt) # The result is an empty list []
使用'GetVector'方法,为什么要将它定义为'T'的方法,而不是作为'VectByRef'(它被声明为)的方法? – michaelb958
我的不好,现在是固定的,谢谢。 – firebird2099
我也有这个问题。我看到你已经在其他网站上发布了这个信息。你有不同的网站有任何答案吗? – spencerlyon2