包装C++;SWIG中的结构模板 我有一个C++代码,它用一个概率包装一个现有的对象: template< typename Object > struct Roll { Object object; double probability; Roll( Object p, double s ) : object( p ) , probability( s ) { } } templatestruct Roll { 对象对象; 双重概率; 滚动(对象p,双s) :对象(p) ,概率 { } }
稍后,这将在同一个.h文件中定义为:包装C++;SWIG中的结构模板 我有一个C++代码,它用一个概率包装一个现有的对象: template< typename Object > struct Roll { Object object; double probability; Roll( Object p, double s ) : object( p ) , probability( s ) { } } templatestruct Roll { 对象对象; 双重概率; 滚动(对象p,双s) :对象(p) ,概率 { } },c++,templates,struct,swig,C++,Templates,Struct,Swig,稍后,这将在同一个.h文件中定义为: typedef Roll< Color > RollColor; typedef RollRollColor; 关于如何在SWIG中封装一个具有原始类型的C++结构,有一个说明,但是这个模板与模板也有关系,所以我不知道如何正确地在我的接口文件中包装它。你知道我怎么做吗?非常感谢。在.i文件中,使用: %template(RollColor) Roll<Color>; 更新,回应OP的评论 您可以使用: %template(Rol
typedef Roll< Color > RollColor;
typedef RollRollColor;
关于如何在SWIG中封装一个具有原始类型的C++结构,有一个说明,但是这个模板与模板也有关系,所以我不知道如何正确地在我的接口文件中包装它。你知道我怎么做吗?非常感谢。在
.i
文件中,使用:
%template(RollColor) Roll<Color>;
更新,回应OP的评论
您可以使用:
%template(RollColors) std::vector<Roll<Color>>;
只有C++有TyPulf.< /P>
%{
#include "roll.h"
#include "color.h"
typedef Roll<Color> RollColor;
%}
%{
#包括“roll.h”
#包括“color.h”
类型定义卷颜色;
%}
在.i
文件中,使用:
%template(RollColor) Roll<Color>;
更新,回应OP的评论
您可以使用:
%template(RollColors) std::vector<Roll<Color>>;
只有C++有TyPulf.< /P>
%{
#include "roll.h"
#include "color.h"
typedef Roll<Color> RollColor;
%}
%{
#包括“roll.h”
#包括“color.h”
类型定义卷颜色;
%}
编译时,它给了我错误“模板‘Roll’undefined”,尽管标题Roll.h已经包含在我的接口文件hi中,但很糟糕,由于缺少信誉点,我还不能放弃投票,但我肯定会稍后回来;)。这是否也可以在其他模板中使用模板,如%template(RollColors)std::vector,或者我必须使用%template(RollColors)std::vector?因为这一个在编译时给了我错误,因为Roll()初始化,它给了我错误“Template'Roll'undefined”,虽然标题Roll.h已经包含在我的接口fileHi中,但很糟糕,由于缺少信誉点,我还不能放弃投票,但我肯定会稍后回来;)。这是否也可以在其他模板中使用模板,如%template(RollColors)std::vector,或者我必须使用%template(RollColors)std::vector?因为这一次由于Roll()初始化给了我错误