Yes, "managed C++" is very poorly managed. You can still do things like:
char foo[42];
foo[-4] = 0xcafebabe;
and watch your program crash and burn. (Sometimes, though, you get an exception you can catch with try{}/catch{}, instead of an actual segv. It would be hilarious... if only the app I was working on did not use this behavior as part of its string-parsing routine...)
Managed C++ isn't really designed to bulletproof C++; it's designed to make it possible to field C++ code without allowing attackers to upload their own programs into your program's memory.
Kicking Managed C++ for not being C# is a bit of a cheap shot.
Comments
Yes, "managed C++" is very poorly managed. You can still do things like:
and watch your program crash and burn. (Sometimes, though, you get an exception you can catch with try{}/catch{}, instead of an actual segv. It would be hilarious... if only the app I was working on did not use this behavior as part of its string-parsing routine...)Managed C++ isn't really designed to bulletproof C++; it's designed to make it possible to field C++ code without allowing attackers to upload their own programs into your program's memory.
Kicking Managed C++ for not being C# is a bit of a cheap shot.