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);
}

赛通方

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 []
4

1 回答 1

1
于 2013-11-05T05:23:47.770 回答