>>24
But D has much nicer metaprogramming facilities
You mean, nicer syntax for metaprogramming facilities. D doesn't do metaprogramming better, it just uses a different syntax.
It has built-in dynamic arrays
C++ as std::vector.
instead of buggy vectors in the standard library
Buggy in what way? At this point i start to get the feeling you never really wrote anything in C++, and you just dump raw hearsay.
therefore it also has safe strings
C++ has std::string. Thing is, D attempts to fix "problems", even though these aren't problems at all; as you correctly pointed out, C++ started out as an extension to C, to allow OOP facilities, such as RAII and thereof. Today, C++ is no longer an extension to C, but a standalone language, but the concept of
primitive type arrays didn't change in this time.