We are definitely cheating there - we use the same colorizer for C and C++. I don't remember why we define two different languages that point to the same colorizer.
Please help us out and contribute a PR. Here[1] is where we register the C language and point to the cpp colorizer. And here[2] is the cpp colorizer. Please go ahead and try the C++ colorizer out at the Monarch playground[3] and edit it to make it colorize only C keywords, etc. Here[4] are the steps for adding a new colorizer.
The highlighting isn't an issue, I think most editors cheat in the same way. As C++ is a super-set of C it shouldn't be a problem, at least not except for a few edge cases which I wouldn't worry about IMHO.
My comment was more that the C example code is actually C++.
Well MSVC only just supports C99 so asking for C11 keywords is unlikely to happen.
I had a quick look at their C++ word list [0] and it looks like _Imaginary and _Complex and _Bool are the only missing C99 keywords. Feel free to make a PR if you want them added :)
restrict is C99. Many C++ compilers accept __restrict__ or some other form of it to mean the same, but restrict doesn't exist in the C++ standard, so the GP is correct.
My comment was more that the C example code is actually C++.