4 ms·
You should also try D to see that seamless C interop has always been there for many years.
by tastyminerals 6y ago
You should also try D to see that seamless C interop has always been there for many years.
- the_duke 6y agoCorrect 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?
- lenkite 6y agoAn extern declaration is needed. https://dlang.org/spec/interfaceToC.html https://dlang.org/spec/interfaceToC.html https://dlang.org/spec/cpp_interface.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.
- chromatin 6y agoNot 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 https://github.com/jacob-carlborg/dstep
- skocznymroczny 6y agoNot by default. There is a project named dpp which adds such functionality though (never tried it).