pythonのC++拡張をコンパイルしようとしています。(SWIG C++からPython)警告301:classキーワードが使用されていますが、C++モードでは使用されていません
私はこのようになりますインターフェイスファイルfoo.iを作成しました:
%module foo
%include "typemaps.i" // For pointers to primitive types
%include "std_string.i" // std::string mapping
%apply const std::string& {std::string* foo}; // data types containing std::string members
%{
#define SWIG_FILE_WITH_INIT
#include "../path/to/c++/header/files/foo_header.h"
%}
%apply double *OUTPUT { double *p, double *p2, double *p3 };
%apply double *OUTPUT { double *a1, double *a2, double *a3 };
%apply double *OUTPUT { double *a, double *b };
class FooBar
{
/*
method signatures etc ...
*/
};
クラス・キーワードが検出されたときに警告が発行されます。さらに、クラス宣言では、メソッドシグネチャの1つで、SWIG barfsのいずれかの点でC++キーワード(bool)が検出されます。
私は、SWIGが解析されるファイルがC++であることを通知する必要があることを示すドキュメントには何も表示されません。実際には、IIRCのドキュメントではSWIGがファイルがヘッダーだけからC/C++であるかどうかを推測することができます - それで何が起こっていますか?
ちなみに、私はあなたがC++を使用している場合、あなたはそれを呼び出すときは、-c++
でcall SWIGに必要SWIGバージョン2.0.4
自分自身への注意:RTFM(http://www.swig.org/Doc2.0/SWIGPlus.html) –