试图通过引用 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);
}
赛通方
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 []