c++ #1 feature: destructors. c code is a mind numbing percentage of gotos and error cleanup.
strings, containers are alright. std::string badly needs someone with a clue to add some more useful methods. templates good when needed.
But yes, c++ does WAY too many things for you that you usually do not want. conversions, copy & assignment, not zero initializing memory... why can't people make things safe and simple by default?? It's also **extremely** hard to parse, which is why things like cppcheck still can't reliably find simple uninitialized problems... static analysis of c++ is too damn hard.
I'm not terribly excited about go either, unfortunately.
Maybe what I want is a language that has the syntax of go but "compiles" to straight c++ source code, after doing sanity checks that c++ *should* have done.