私はPythonでオブジェクトの配列を持っています
[obj1, obj2, obj3]
そして、それらを C++ 関数に渡して計算を実行したいと考えています。SWIG を使用してインターフェイスを作成しています。渡されたオブジェクトのクラス型は、C++ で既に定義されています。
これを行う最善の方法は何ですか?
関数が既に作成されていて変更できないかどうかによって異なります。その場合、Swig ドキュメントをチェックして、PyList から std::vector への typemap が既に存在するかどうかを確認する必要があります (あると思います)。そうでない場合は、PyObject* を関数の引数として取り、Python C API を使用してリストを操作するとうまくいくはずです。これまでのところ、問題はありません。自己文書化のために、PyObject* を「PythonList」のようなある種の予想される型に typedef して、パラメーターに何らかの意味を持たせることをお勧めします。
これも役に立つかもしれません: