I disagree. The reason it's not clean is because they threw everything including the kitchen sink into it.
C is a very simple and elegant language. You can write down the specs for it on a dinner napkin. And implement a compiler for it overnight.
C++, on the other hand? A fully compliant compiler for it took over a decade.
Can you give an example of removing some backwards compatibility with C that would make C++ cleaner?
Re:Surviving C++
by WalterBright on Sunday February 27, 2011 @03:56PM
(#2268930)
Converting static array references to pointers when passing them as a function parameter. The whole array/pointer conflation.
C's struct "tag name space".
Trigraphs and \ line splicing.
Replace #include with symbolic import.
Ironically, had C++ been 'cleaner' and not as backwards compatible with C from the outset, then we probably would not be having this conversation today because no one would have ever adopted it. :)