With C++ most of the time, one is either consuming a huge/important library (even an OS SDK) or writing one. If you're consuming the librarie(s), you just can't go around typedefing important APIs, or you will end up maintaining a nightmare of a fork. And if you're writing one, the sensible thing to do is to stick with a tangible subset of C++, like most good libraries do.
Seriously, if your C++ code starts to look ugly, you're probably using the language to its full potential. Don't do that. Scale back to a manageable C-like subset; And no, you can't grow your C++ code-base to a blissful Greenspun-esque nirvana; more C++ begets, well, MORE C++. Those multi-page Doxygen class listings and woolly dependency diagrams never gel and mesh into something organic. The code-base just grows diagonally, and orthogonal to your intended direction..