In fact the doc says,
> Being 100% compatible with C++ means more or less adding a fully functional C++ compiler front end to D. Anecdotal evidence suggests that writing such is a minimum of a 10 man-year project, essentially making a D compiler with such capability unimplementable.
It then goes on to describe the pragmatic approach that doesn't allow full compatibility:
> D takes a pragmatic approach that assumes a couple modest accommodations can solve a significant chunk of the problem:
> matching C++ name mangling conventions
> matching C++ function calling conventions
> matching C++ virtual function table layout for single inheritance
Can you see how limited this subset of interoperable API is?
> matching C++ function calling conventions
> matching C++ virtual function table layout for single inheritance
Basically COM? Which is not surprising as it was designed as an OO native FFI.
https://dlang.org/spec/cpp_interface.html