"No type checking rule" 仅在我提供类型检查规则时出错
"No type checking rule" error only when I supply a type checking rule
我有一个 class,主要用作 boost::shared_ptr。我正在尝试包装一些重载函数,并且需要添加一个类型检查规则,以便从 Python 端提供一些功能。
当我告诉 SWIG 要为我的 class 使用共享指针时,SWIG 包装器可以正常构建和编译。
%shared_ptr(mynamespace::MyClass)
然而,一旦我添加了类型检查规则,SWIG 告诉我没有提供类型检查规则!这是我的 SWIG 包装代码:
%shared_ptr(mynamespace::MyClass)
%typemap(typecheck) boost::shared_ptr<mynamespace::MyClass> {
// always OK, dummy for testing.
= SWIG_IsOK(1);
}
我收到的错误信息是:
/scr/dbw/bld/include/header.h:509:警告 467:重载方法 mynamespace::get_contacts(boost::shared_ptr< mynamespace::MyClass >) 不受支持([=23 没有类型检查规则=]).
我不明白为什么,但在这种情况下我需要为类型检查提供优先级:
%shared_ptr(mynamespace::MyClass)
%typemap(typecheck, precedence=SWIG_TYPECHECK_POINTER) boost::shared_ptr<mynamespace::MyClass> {
// always OK, dummy for testing.
= SWIG_IsOK(1);
}
对于其他类型检查,我当然不需要提供优先级。
我有一个 class,主要用作 boost::shared_ptr。我正在尝试包装一些重载函数,并且需要添加一个类型检查规则,以便从 Python 端提供一些功能。
当我告诉 SWIG 要为我的 class 使用共享指针时,SWIG 包装器可以正常构建和编译。
%shared_ptr(mynamespace::MyClass)
然而,一旦我添加了类型检查规则,SWIG 告诉我没有提供类型检查规则!这是我的 SWIG 包装代码:
%shared_ptr(mynamespace::MyClass)
%typemap(typecheck) boost::shared_ptr<mynamespace::MyClass> {
// always OK, dummy for testing.
= SWIG_IsOK(1);
}
我收到的错误信息是:
/scr/dbw/bld/include/header.h:509:警告 467:重载方法 mynamespace::get_contacts(boost::shared_ptr< mynamespace::MyClass >) 不受支持([=23 没有类型检查规则=]).
我不明白为什么,但在这种情况下我需要为类型检查提供优先级:
%shared_ptr(mynamespace::MyClass)
%typemap(typecheck, precedence=SWIG_TYPECHECK_POINTER) boost::shared_ptr<mynamespace::MyClass> {
// always OK, dummy for testing.
= SWIG_IsOK(1);
}
对于其他类型检查,我当然不需要提供优先级。