AndroidアプリケーションのSWIGでC++コードをラッピングしています。個人的に別のクラスを継承するクラスを使用して、親のメンバー関数の一部を公開するためにそこにusing
というディレクティブをスローすると、問題に直面しています。SWIGラッパーのプライベートベースクラスメンバ関数を公開できません
#include "Bar.h"
class Foo : private Bar {
//Stuff Foo-specific...
public:
using Bar::baz;
};
事は、私はSWIGを実行すると、私はラッピング中に次のメッセージを取得するには、次のとおりです:
がfoo.h:8:315警告:バー」について知らナッシング:次のようになります:baz() '。
注:両方のヘッダがラッパーファイルに含まれている私はBar
ヘッダーを望んでいないとして、唯一Foo
ヘッダがラップされるように、ラップされて、私の.i
ファイルは次のようになります。
%{
#include "Bar.h"
#include "Foo.h"
%}
%include "Foo.h"
私のJavaクラスはこのシンボルを見つけることができないのでコンパイルされません。
private inheritanceとusing
keyword(ただし、私的継承についての例はありません)私はここで何が欠けていますか?
ああ、確かに '%のignore'ディレクティブを忘れてしまいました。私は '#include 'を持っているだけで宣言だけで十分だと思っていたが、明らかに間違っていたと思った...ありがとう! – JBL