0

このマクロFOOBARをSWIGでラップする方法をここで読みました:

class foobar {
public:
    static void method() {}
};

#define FOOBAR() foobar().method()

解決策は、これを SWIG インターフェイスに含めることです。

void FOOBAR();

ただし、()私のマクロが

#define FOOBAR foobar().method()

これは、C++ で使用できる完全に正当なマクロです。これをラップするにはどうすればよいので、Python コマンド ラインで次のように言えます。

>>>FOOBAR

これは紛らわしいように見えるので、明確にするために。意図的に何も返さないメソッドを選択しました。「何を返すべきか」という無関係な質問が考慮されないように、私はそうしました。しかし、人々はまだそれを検討したいと考えているようです。

OK では、C++ ではFOOBAR意味があります。これは特定のオブジェクトであり、呼び出すことができますFOOBAR.someMethod()。Pythonコマンドラインで、同じように動作するオブジェクト(同等のもの)でもあることを望みますFOOBAR.someMethod().C++と同じように呼び出して動作させたいです。

申し訳ありませんが、SWIG のコンテキストでは、上記の説明は明白で不要であり、略語「wrap」に含まれていると思います。

4

1 に答える 1