Erlang:C ++绑定最先进的技术?

时间:2012-02-15 08:54:52

标签: c++ binding erlang

我正在评估在Erlang中绑定我的C ++项目。我的项目大量使用模板和方法重载,所以有这样的事情并不罕见:

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

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

我听说Erlang中的计算模型与“传统”编程语言略有不同。在Erlang中,节点似乎是第一类组件,其中消息从Node流向另一个节点。在这种情况下,例如:“这是一个int的列表。将它发送到C ++节点,它将它转换为Buffer&lt; int&gt;对象,对它执行一些操作,然后将结果转换回一个新的Erlang列表“? 我在网上看到过一些像tinch ++这样的项目,看起来很有希望,但根本不稳定。 每种提示,链接或代码片段都会非常受欢迎。

提前致谢,A。

1 个答案:

答案 0 :(得分:5)

请参阅Interoperability Tutorial

要与C和C ++接口,您不需要创建节点。端口驱动程序或NIF(本机实现的功能)可能是更好的选择。无论如何,您的C ++节点/端口驱动程序/ NIF将从Erlang接收消息/参数作为特定数据结构:ETERMErlDrvTermERL_NIF_TERM。然后你检查这个术语的样子(例如,如果它是一个整数列表),并且可以将它转换成你需要的任何东西。