2012-10-09 91 views
0

我有這個類,但無法弄清楚如何用cython extern定義。內部的typedef是竊聽我:cython模板的限制在哪裏?

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) 

謝謝你幫我

回答

1

請嘗試下:

LabCallBack2(**void ***_method) 

我曾在其他情況下,使用這一招,它正常工作與用Cython