在内存中移动对象的可能性是什么?

时间:2018-06-21 08:28:37

标签: c++ memory move memmove

可以通过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移动语义,它本身不会移动任何东西。

0 个答案:

没有答案