Hacker News new | ask | show | jobs
by tastyminerals 1932 days ago
You should also try D to see that seamless C interop has always been there for many years.
1 comments

Correct me if I'm wrong, but I don't think D has the ability to just import C headers and seamlessly use them without having generated or manually written `extern` declarations?
An extern declaration is needed. https://dlang.org/spec/interfaceToC.html https://dlang.org/spec/cpp_interface.html

C (or even C++) functions can be called directly from D. There is no need for wrapper functions, argument swizzling, and the C functions do not need to be put into a separate DLL.

I think Walter Bright achieved this via implementing a full-blown C++ parser in the dlang compiler. A [God-Tier] achievement.

Not quite as seamless as Zig, but dstep is an external program that leverages libclang to do the same thing (and generates a D module for you), as well as e.g., smartly convert #define macros to inlineable templates functions :)

https://github.com/jacob-carlborg/dstep

Not by default. There is a project named dpp which adds such functionality though (never tried it).