memmove
将可轻易复制的对象移动到内存中,例如:
struct X { };
int main() {
static_assert(std::is_trivially_copyable_v<X>);
X* px1 = (X*)operator new(sizeof(X));
new(px1) X{};
X* px2 = (X*)operator new(sizeof(X));
memmove(px2, px1, sizeof(X));
px2->~X();
operator delete(px1);
operator delete(px2);
}
实时演示:https://wandbox.org/permlink/68d1cqMt6yd8LBR4。
我只是想知道是否还有其他机制可以在C ++标准允许的memmove
旁边移动对象(重新分配)。
为了清楚起见,我并不是在问C ++ 11移动语义,它本身不会移动任何东西。