I have been going through my languages and fixing issues and making modifications on the languages I use the most. I have had this problem before, and I think I have a fix.
Go to line 210 of your Packages/C++/C.tmLanguage file and change this:
to a negative lookahead:
As you can see, it appears to now be highlighting fine.
Thanks for posting the file, it made it much easier to get to the bottom of this.