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