Interfacing D with C and C++

Scott Wilson via Digitalmars-d digitalmars-d at puremagic.com
Sat Aug 23 15:46:10 PDT 2014


Hello, world. Brand new poster here though I posted similar 
messages in other language forums. I hope this is the right place 
to ask because my question is half about existing stuff and half 
about prospective work.

I am considering starting with D amid a C++ code base. New D code 
would need to somehow integrate with the existing C++ code. The 
C++ code is the expected melange of free functions, classes, what 
have you and uses STL and Boost (also other libs less 
prominently). Allow me to ask:

1. What is the current support for calling C/C++ free functions 
from D? What level of mangling is supported? What data types can 
be passed without translation from D to C/C++?

2. How about template functions? Is it possible to call a C++ 
template function from D?

3. How can a C++ object be used from D? Can C++ methods be called 
from D? The question applies to value types - no virtuals - and 
polymorphic types with virtuals, inheritance etc. And of course 
simple C structs.

4. How about template objects? One issue is that many C++ 
interfaces pass std::string and std::map<..., ...> as parameters. 
How feasible is to manipulate such objects in D?

5. How about the other way? Can a C/C++ function call a D 
function?

I would appreciate any pointers you have to how-to materials. In 
equal measure I am interested in plans to address such issues in 
the foreseeable future. Thankyou.


Scott


More information about the Digitalmars-d mailing list