Cython C++ 和 std::string
Posted
技术标签:
【中文标题】Cython C++ 和 std::string【英文标题】:Cython C++ and std::string 【发布时间】:2010-10-06 08:42:07 【问题描述】:从 cython 使用 C++ 标准 std::string 的最佳方式是什么?无论如何,最后一个 cython 发行版应该很容易,但我想知道为什么有 std::vector 的包装器而不是 std::string 的包装器......
【问题讨论】:
【参考方案1】:Cython 0.16 includes wrappers for std::string,可以通过以下方式导入:
from libcpp.string cimport string
【讨论】:
似乎我在 OSX 上使用 Cython 0.16 的声明不符合 Linux 上的 Cython 0.17,使用 OSX 我得到Cannot convert 'string' to Python object
【参考方案2】:
哎呀,这个问题已经在这里挂了几天了。最后我这样做了:
cdef extern from "string" namespace "std":
cdef cppclass string:
char* c_str()
这不是一个完整的解决方案,但它仍然可以解决问题。
【讨论】:
我也会添加 string(char *) 。这使您可以在 python 字符串中前进和后退。以上是关于Cython C++ 和 std::string的主要内容,如果未能解决你的问题,请参考以下文章
Cython - 将 C++ 函数返回的 C++(向量和非向量)对象暴露给 Python
Cython -std=c++11 错误,同时使用 C 和 C++