我想知道C中 move semantics的起源是什么?特别是它是专门为这种语言发明的还是在其他语言中有类似的东西?在后一种情况下,你可以提供一些参考. 这个概念似乎没有任何特定的祖先.如
Move semantics in various forms has been discussed in C++ forums (most
notably comp.lang.c++.moderated) for years.
在我看来,它们与C的左值和左值的概念紧密结合,如果我没有弄错的话,它纯粹是一个C概念.没有左值,右值和它们的新C 11朋友的语言不需要以C实现它们的方式移动语义.
但更一般地说,移动东西而不是复制的概念只是一个基本概念.每当你编写一个链表而你通过实际只是交换指针来“交换元素”时,你就是在做“移动”.基本上.