There most certainly are. std::locale is both under and mis-specified. Any non-trivial localization work requires implementation dependent information, defeating the point have having a standard library solution, and certain functions are useless because they assume single character returns when in actuality languages can have multiple character returns. Exception specifications outside of throw() are worse than useless, adding overhead without benefit, and even throw() has sufficient issues that C++11 had to introduce noexcept. Template export is only implemented in one compiler family and even they recommend against its use because the export specification has some consequences that the standards committee missed when they created it. Don't even get me started on the most vexing parse or the places where signed integers have undefined behavior rather than implementation defined behavior.
There are no 'bad' places of C++.