2012-02-15 8 views
2

私はErlangの私のC++プロジェクトのバインディングを評価しています。私のプロジェクトは、大規模な過負荷をテンプレートとメソッドを使用していますので、それはこのようなものを持っていることも珍しくありません。Erlang:C++バインディングの最新技術は?

template <typename T, class Iterator = BufferIterator<T> > 
class Buffer 
{ 

public: 
    [...] 
private: 
    [...] 
}; 

私はErlangで計算モデルは、「伝統的な」プログラミング言語とは少し異なっていることを聞きました。 Erlangでは、ノードはノードから別のノードへと流れるメッセージを持つファーストクラスのコンポーネントのようです。このシナリオでは、例えば次のようになります。「これはintのリストです。これをC++ノードに送信して、それをバッファ<int>オブジェクトに変換し、いくつかの操作を実行し、結果を新しいErlangリスト "? 私はtinch ++のようないくつかのプロジェクトをWeb上で見てきましたが、有望だが安定していないようです。 ヒント、リンク、コードスニペットのすべての種類が非常にappriciatedされます。事前に

おかげで、A.

答えて

5

Interoperability Tutorialを参照してください。

CおよびC++とのインタフェースでは、ノードを作成する必要はありません。ポートドライバまたはNIF(ネイティブに実装された関数)が良い選択かもしれません。とにかく、あなたのC++ノード/ポートドライバ/ NIFはErlangからのメッセージ/引数を具体的なデータ構造(ETERMErlDrvTerm、またはERL_NIF_TERM)として受け取ります。次に、用語がどのように見えるかを確認し(たとえば、intのリストの場合)、必要なものに変換できます。

関連する問題