I've clearly named out the handicaps. I'm just not to sure if you were keeping up.
~
There's the fact C# is dependant on the CLR component making it slower, not portable, and no control over memory management. C++ is a widely supported language accross platforms, and if you're good at it in you can make code that isn't specific to an OS.
C# is compiled into a psuedo code and then run realtime through a VM (translates it into binary on the fly), C++ is compiled to be an executable binary file (or a .dll, .ocx, tbh you can even make your own valid file formats, if you get to knowing about that stuff) . C++ could be used to make a VM like the CLR component, while C# itself is limited in memory management because of the CLR.
I'm a binary enthusiast I might not make my own and just stick to the pure 'n clean stuff.