为了账号安全,请及时绑定邮箱和手机立即绑定

当我想使用Swig%extend扩展给定类时出现Swig问题

当我想使用Swig%extend扩展给定类时出现Swig问题

一只萌萌小番薯 2021-03-30 17:05:24
我的Swig文件(.i)中包含以下代码:%extend vgSofa::handler::VertexShape{        vgd::Shp< vgSofa::handler::VertexShape > createVSWithNode( sofa::simulation::Node * root )        {            vgd::Shp< vgSofa::handler::VertexShape > result( new vgSofa::handler::VertexShape() );            return result->init(root) ? result : vgd::Shp< vgSofa::handler::VertexShape >();        }                   vgd::Shp< vgSofa::handler::VertexShape > createVSWithBsicHandler( vgd::Shp<vgSofa::handler::BasicHandler> h )        {            return vgSofa_handler_VertexShape_createVSWithNode( $self, h->getRoot() );        }   };在创建的.cpp文件中,swig在我的方法中添加了另一个参数:SWIGINTERN vgd::Shp< vgSofa::handler::VertexShape > vgSofa_handler_VertexShape_createVSWithBsicHandler(vgSofa::handler::VertexShape *self,vgd::Shp< vgSofa::handler::BasicHandler > h){...}如何防止将此附加参数添加到VertexShape?
查看完整描述

1 回答

?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

那是正常现象。SWIG的%extend指令在生成的代码中生成独立的函数。如果$self在主体中使用,该函数将提供一个参数(名为“ self”),该参数是C ++类实例的指针。

附带说明:C ++在后台执行相同的操作。该this指针被作为第一个参数的所有非静态成员函数隐式传递。


查看完整回答
反对 回复 2021-04-01
  • 1 回答
  • 0 关注
  • 381 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信