On Tuesday, 23 October 2018 at 20:32:29 UTC, Andrea Fontana wrote:
On Tuesday, 23 October 2018 at 20:03:42 UTC, Atila Neves wrote:
We do - it's just very far from being complete. dpp can do
some simple C++ and would have been able to do
C-with-classes-style C++ ages ago. My focus is on templates
though, since for me I can't see any useful C++ libraries that
I'd actually want to call from D that don't use templates. And
sometimes it's as silly as wanting to bind to an existing
not-that-complicated library that happens to have a
std::vector in its structs. For that, you need to be able to
translate the standard library.
Interesting. I'm using it for many different c libraries but I
didn't think it worked for c++ already!
The only problem I found with DPP is that simple consts
declared with #define are not translated if not explicitly
used. I think i can understand the reason (macro evaluation, I
guess) but it would be useful to have a way to export them if
they are simple consts...
The whole idea of dpp is to be able to use headers as they are
used in C and C++. Macros there don't exist unless they're
expanded, so it's the same thing with dpp.
Maybe it's good idea to add a runtime flag to translate
non-function-like macros as enums... hmm.