You may want to take a look at irony-mode. Do not expect any rich semantic features from the stock c-mode.
It's not rich semantic features that are missing, but basic stuff such as C++11 keywords, handling of >>, etc. Those seem to be available in a cc-mode branch, but since cc-mode is maintained separately from Emacs, it takes more effort than it should to have an updated version of cc-mode in Emacs.
Nowadays using package.el is mandatory.
I know this is a "if you really need it, why don't you work on it yourself instead of complaining?". I've tried making sense of the cc-mode source, without any success at all.