On Tuesday, 8 September 2015 at 12:56:00 UTC, Laeeth Isharc wrote:


This is really very clear and helpful, and I appreciate your taking the time. I will place it on the wiki if that's okay.

Thats ok.


Library support is surely one of the largest impediments to the adoption of D, and we ought to place some emphasis on updating the documentation here:
http://dlang.org/cpp_interface.html

How does it work when external APIs expect objects from the C++ standard library? strings, and so on? How about funny pointer types? shared_ptr etc? std::vector, std::list?

For templated types like std::vector, std::list and shared_ptr you have two options: - Redo the complete implementation on the D side ensuring that the data layout is the same - Or, expose helper functions which call placement new / desturctor of your needed std::vector<T> and do the hidden data trick I described above. The regular functions of std::vector just have to be declared and the linker will find them if and only if the c++ side instanciated the template.


Here is one C++ library used by many in finance (at least as a backup). I think there might be a decent amount of value in making this usable from D. (Trying to put my own interests aside!) Paging Andy Smith ?

http://quantlib.org/reference/_bermudan_swaption_8cpp-example.html

I think you have to make this usable from D yourself ;-)


Are there any well-known C++ libraries that you have interfaced to ? Could you give some examples of how long it takes ?

I'm interfacing to a 3D engine I'm working on in my spare time with some collegues. So no well known C++ library.


Would you be able to drop me an email about something else? No contact info on your blog, but my domain is kaleidicassociates.com and my user id is laeeth@

Will do.

Kind Regards
Benjamin Thaut


Reply via email to