It's been a long time since that's been true.
The original implementation of C++ called CFront, written by the creator of C++ itself, was just a preprocessor that translated C++ code into C. But as C++ grew in complexity (specifically when they added exception support!) C++ compilers went native.
I'm well aware the backends have gone to a more native appoach. GNU compilers emit RTL. I'm not real surprised to hear the MS .Net compilers are putting out code compliant with that backend.