【发布时间】:2012-09-18 11:03:32
【问题描述】:
从我目前所读到的内容来看,将 FFI 与 C++ 一起使用是非常困难的。最大的原因之一似乎是将 C++ 对象转换为 Haskell。我现在的问题是我对 C 没有任何经验,但是有几年的 C++ 经验,而且我更喜欢 OOP。因此,我自然希望从 C++ 中受益。
那么,我可以编写供 Haskell FFI 使用的 C++ 程序来解决这些问题吗? C++ 可以在后台做任何事情,但 API 将类似于 C,即我没有交换对象,没有重载的顶级函数等等。有什么需要注意的陷阱吗?
(将我的项目与您可能熟悉的项目进行比较:考虑使用 SciPy 的 Weave 来加速 Python 代码。)
【问题讨论】:
-
如果你想使用 C++,那么使用 C++,而不是 Haskell。否则保留 FFI 用于与本机库和 maaaaaybe 真正性能关键代码的接口。
-
@CatPlusPlus 性能关键代码正是我使用 C++ 的目的。
-
FFI 被用作最后的手段。
-
是的。我们现在可以专注于我的问题了吗?
-
答案是'是的,如果你小心的话,你可以使用 extern "C"-d 函数',并且与 Haskell 没有真正的关系。