我有一堆不属于任何类的实用函数,它返回unique_ptr<MyGraph>
我一直在使用%extend
指令来处理函数是类的一部分的其他类似情况。但%extend
专门用于扩展类。
如何扩展无类实用程序函数以返回原始指针?
答案 0 :(得分:0)
在这种情况下,您可能不需要使用%extend
。您可以只创建新方法并直接返回指针。例如,如果您的代码如下所示:
unique_ptr<MyGraph> getMyGraph();
你可以简单地添加一个新方法:
MyGraph* getGraph() { return getMyGraph().get(); }
如果您在使用SWIG时需要控制对此的访问,您可以这样做:
#ifdef SWIG
MyGraph* getGraph() { return myGraphPtr.get(); }
#else
unique_ptr<MyGraph> getMyGraph();
#endif // SWIG
&#39; SWIG&#39;在确定要向目标语言公开的方法时,swig使用define。