Re: Encumbered?
You may note neither I nor the original commenter mentioned garbage collection. The original comment was talking about checked memory access; I'd expect you to get for free from any language with a greater level of abstraction (eg, no pointers) and in turn those generally imply garbage collection, but they're not essential.
I'm talking about the kind of memory management system where every memory access needs to be validated by the userland before it happens; the STL containers and smart pointers perhaps fulfil this role. Their overhead is optional, and choosing to avoid it for whatever reason is relatively painless (eg, you could just get pointer to the first element of a vector and treat it like a normal array, if you wanted).
Making a GC and an unmanaged memory model work together seems to be clunky at best... C++ CLR does indeed use extra templates such as pin_ptr and gc_root and safe_cast as well as new keywords like gcnew and the addition of object Finalizers. Its effectively two languages crudely grafted together, though I'd like to think it is possible to do better.
GCs are popular because they are a crutch... they take away some immediate hassles, and replace them with magic and nondeterministic behavour, but this is a tradeoff you may be happy to make. They are not essential for C++ by any means, even less so under C++11. If you feel that you absolutely cannot work without one, or that whatever project you are currently involved with requires one then you are probably trying to use the wrong language for the job, and you should look to Java or C# or whatever else instead.