0

我有这门课,但不知道如何用 cython 进行外部定义。内部 typedef 困扰着我:

public:

 typedef ReturnType (*Method)(Parameter);

这是完整的课程:

#ifndef LABCALLBACK2_H_
#define LABCALLBACK2_H_


namespace elps {


template < typename ReturnType, typename Parameter >
class LabCallBack2
{
public:

 typedef ReturnType (*Method)(Parameter);

 LabCallBack2(Method _method)
 {
    method         = _method;
 };

 ReturnType operator()(Parameter parameter)
 {
    return (*method)(parameter);
 };

 ReturnType execute(Parameter parameter)
 {
    return operator()(parameter);
 };

private:

 Method  method;

};


}  // namespace elps

#endif /* LABCALLBACK2_H_ */

我从这个开始,但接下来呢?cython 是否提供了一种方法来做到这一点?

cdef extern from "../inc/LabCallBack2.h" namespace "elps" :
    cdef cppclass LabCallBack2[ReturnType, Parameter]:
        LabCallBack2(?????????  _method)

谢谢你帮助我

4

1 回答 1

1

请尝试下一个:

LabCallBack2(**void ***_method)

我在其他情况下使用过这个技巧,它适用于 cython

于 2012-10-10T21:42:44.253 回答