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++ 和 std::string

Cython - 将 C++ 函数返回的 C++(向量和非向量)对象暴露给 Python

Cython 和重载的 c++ 构造函数

Cython -std=c++11 错误,同时使用 C 和 C++

cython:C++ 方法声明中的 const 和 except

Cython 中的 C++ 指针