Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
包装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 - Fatal编程技术网

包装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++;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

稍后,这将在同一个.h文件中定义为:

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()初始化给了我错误