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

Posted

技术标签:

【中文标题】cython:C++ 方法声明中的 const 和 except【英文标题】:cython: both const and except in C++ method declaration 【发布时间】:2014-11-13 08:23:38 【问题描述】:

我的代码是:

cdef extern from "mylib.h":
    cdef cppclass MyClass:
        MyClass(const char *data) except +
        # and I also need except + for myMethod
        int myMethod(size_t len, char *data) const

我的方法需要constexcept +,但我不能。我试图在空格之后写它,在逗号之后,将两个声明都放在括号中——但是得到了不同类型的 cyntax 错误。文档没有给出关于多个注释的提示...

使用了来自 Ubuntu Trusty 的 cython 0.20.1。

【问题讨论】:

【参考方案1】:

作为参考,OP 似乎从 Cython mailing list 得到的答案基本上是目前不可能,但在实践中可能无关紧要,因为可以放弃 const 以支持except + 不影响编译能力。

【讨论】:

感谢您添加答案:) 但是,如果您将 C++ 部分放在单独的共享库中,它似乎会有所不同。然后找不到所需的符号。

以上是关于cython:C++ 方法声明中的 const 和 except的主要内容,如果未能解决你的问题,请参考以下文章

在cython中使用参数声明函数时出错[关闭]

用函数指针包装 C++ 代码作为 cython 中的模板参数

C++ 中的 const 正确性

Cython 中的 C++ 指针

如何从另一个包装的对象返回 Cython 中的包装 C++ 对象?

C++中的const成员函数(函数声明后加const,或称常量成员函数)用法详解