The final ISO ballot on C++0x closed on Wednesday, and we just received the results: Unanimous approval. The next revision of C++ that we've been calling "C++0x" is now an International Standard! Geneva will take several months to publish it, but we hope it will be published well within the year, and then we'll be able to call it "C++11."

C provides relatively little opportunity for abstraction, and less safety. To give one example: the only manner to make a generic algorithm is by using macros (bad) or void pointers. In C++ you can just write a templated definition, which provides genericity and type safety.

and Objective C.

People use C++ because they want a fast low-level object-oriented language. Objective-C is the opposite, since it uses late binding and heterogeneous containers, it is far too slow for things that people typically use C++ for.

If you are proposing alternatives, D is probably the thing that comes closest. However, that language is plagues by having two widely used standard libraries, and having only a mature compiler for D2 that uses a non-FLOSS backend (dmd2).

However, if you want to compile to machine code, Haskell and OCaml may also be possibility. If used wisely, you can write fast programs in both languages.