gpt4 book ai didi

c++ - 错误 C2039 : 'type_name' : is not a member of of 'swig::traits'

转载 作者:搜寻专家 更新时间:2023-10-31 02:15:31 25 4
gpt4 key购买 nike

我无法 SWIG 包装一个返回指向类实例的指针映射的函数。编译生成的 SWIG 代码时出现编译错误。

error C2039: 'type_name' : is not a member of 'swig::traits<Bar>'

这是我的 .i 文件

class Foo
{
...
};

class Bar
{
...
};

%template(MapFooPtrBarPtr) std::map<Foo*, Bar*>;

std::map<Foo*, Bar*> GetMap();

最佳答案

将以下类型映射代码添加到 .i 文件中的 %template 之前。请注意返回字符串中类名后缺少“*”。

%{
namespace swig {
template <> struct traits<Bar>
{
typedef pointer_category category;
static const char* type_name()
{
return "Bar";
}
};
}
%}

从以下位置获得解决方案:http://swig.10945.n7.nabble.com/std-containers-and-pointers-td3728.html

关于c++ - 错误 C2039 : 'type_name' : is not a member of of 'swig::traits<Bar>' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38404806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com