.NET:C ++绑定的最新技术?

时间:2012-02-14 16:44:35

标签: c++ .net binding

我正在评估在.NET中绑定我的C ++项目,被F#提供的可能性所吸引。我的项目大量使用模板,所以有这样的事情并不罕见:

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

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

我的问题是:在.NET中与C ++的集成有多紧密?是否可以绑定我的项目以完全支持C ++模板和其他C ++ TMP功能? 材料链接和几个例子将非常感激。

提前致谢, 甲

1 个答案:

答案 0 :(得分:1)

C ++模板可用于C ++ / CLI项目中的本机和托管类型。

模板化C ++ / CLI类型的实例可以在项目外部使用(程序集),但它们可以作为完全独立且不相关的类型。在C ++ / CLI项目之间共享C ++ / CLI类型模板会导致类型标识问题,您应该只共享具体类型。

其他语言对元编程没有任何支持。

模板和.NET泛型之间没有关系,第一个是编译时功能,第二个是运行时。接近多态的两种不兼容的方法(这并不是说你不能同时使用两者,而是两者不相互交互)