I am assuming that is sarcasm but in case it's not, you can brush up on it here: http://www.theregister.co.uk/2009/05/15/microsoft_banishes_memcpy/ That is correct. I don't find it insane in the least to have explicit control over a program. It's hard to read, doesn't provide any performance gain, is harder to maintain, has a negative len value bug, and has an increment inefficienty on some compilers. I would not classify it as better. Your statement is incorrect. First and foremost, the code is not managed code; therefore, it does not expose managed memory. Second, even in the context of unmanaged code, it's not exposing any internal object to the outside world; thus, encapsulation is not broken. Yet, you cannot find any C++ compiler that doesn't also work on C code at the same time. I would consider thinking about why that might be. You don't/do *need* anything is a subjective opinion. I am not sure what you were referring to by the "In this case either..." section; however, your assertion about executing a non-standard function on a container in a way which has undefined behavior is incorrect. memcpy() is very much a standard function. Accessing a vector's memory in a contiguous fashion is also correct because "A vector's storage is guaranteed to be contiguous. From ISO 14882, 2nd ed., 23.2.4 [lib.vector]:". Again, just reiterating... it's unmanaged code (not managed). The answer to all your questions is obviously yes.