3

私はブーストの初心者であり、理解できないライブラリの1つはBoost.Pythonです。この相互運用性がどのように達成されたのか、詳しく説明してくれる人はいますか?ドキュメントには、メタプログラミングについての言葉しかありません。PSコードを見ようとしましたが、C++の知識が不足しているため、原則を理解できませんでした。前もって感謝します

4

1 に答える 1

5

相互運用するには、次の 2 つの方法があります。

1) 「Python プロセス」から、C++ で記述された関数を呼び出します。

Python には既に dll をロードするシステムがあり、それらは「拡張モジュール」と呼ばれます。Boost.Python は、ソースをコンパイルして生成できます。基本的に、Python から呼び出し可能な関数を宣言するための小さなラッパーを作成します。「メタプログラミング」は、C++ 関数が受け取る型と返す型を検出するなどの処理を行うためのものです。同等の Python タイプ。

2) 「C++ プロセス」から、Python インタープリターを起動して制御します。

Python はこれを行うための C API を提供しており、Boost.Python はその使用方法を知っています。

于 2013-03-02T23:30:23.017 に答える