0

私はこのクラスを持っていますが、cythonでextern定義する方法を理解できません。内側の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 に答える