似乎没有任何特定的概念祖先。C++移动语义的起源,如原始提案中所述,是在新闻组中讨论的:“多种形式的移动语义已经在C++论坛(尤其是comp.lang.c++.moderated)中讨论了多年。”在我看来,它们与C++中左值和右值的概念紧密相连,如果我没有弄错的话,这纯粹是一个C++的概念。一个没有左值、右值及其新的C++11朋友的语言不需要像C++实现的那样使用移动语义。然而,更普遍地说,将东西移动而不是复制的概念只是一个基本概念。每当您编写一个链接列表并通过实际交换指向它们的指针来“交换元素”时,您就正在进行“移动”。基本上。
auto_ptr
的非正式实现中表现得十分明显。显然,由于缺乏语言支持而无法干净地完成某些想做的事情,这是很明显的。 - Kerrek SB