I was working on a vector-like container, and while writing a resize() function came across an interesting question.
When moving an object between locations, when would std::move() not give the same results as simply a std::memcpy()?
There were only two situations that I could think of. One was when the move constructor (or assignment operator) was intentionally used to do something strange (ie. not actually move). The other that when using std::move() the src object could (in theory) be reused, or at the very least has to be destroyed, where-as with the std::memcpy() neither applies.
But in every other case I could think of (pointers, handles, reference counting) simply copying the bits should have the same result as calling std::move().?