thank you all for your great answers. I'm playing around with
@nogc right now, and it looks really promising. Strings and
static arrays all seem to be located on the stack, which is so
much better compared to std::string and std::vector in C++. The
double indirection for virtual functions bother me, and it isn't
getting better with all methods being virtual by default - I
guess I'll be writing the keyword "final" very intensively in all
my programs. I would also gladly pay some bytes in pointer bloat
to have my virtual functions speed up. Strange that D kept the
vtable approach when breaking with C++.
I know that D concentrated much on C++ compatibility a while ago.
Are there any plans to support the direct inclusion on C header
files? Many important libraries like ICU have C interfaces even
when written in C++. The direct support of C headers would be
very convenient in migrating parts of C/C++ projects to D. It
would also open up POSIX which is used extensively in our work.
This looks great:
but it must be tedious to keep such files up to date.
Despite the point where I'm complaining, I must say that D looks
very impressive. Beautiful syntax, large standard library, and
standardized inline assembler (Thank you!). I'll definitely try
to find a suitable project to try out D under serious conditions.