Кажется, что нет какого-либо конкретного предка этой концепции. Происхождение семантики перемещения C ++, как отмечалось в первоначальном предложении , было обсуждение в группах новостей:
Семантика перемещения в различных формах обсуждалась на форумах C ++ (большинство
особенно comp.lang.c ++. модерируется) в течение многих лет.
На мой взгляд, они тесно связаны с понятием l ++ значений и значений r в C ++, которое, если я не ошибаюсь, является чисто концепцией C ++. Язык, который не имеет lvalues, rvalues и их новых друзей в C ++ 11, не нуждается в семантике перемещения в том виде, в котором их реализует C ++.
В более общем смысле, концепция перемещения, а не копирования, является просто фундаментальной концепцией. Всякий раз, когда вы пишете связанный список и «меняете элементы», просто заменяя указатели на них, вы делаете «ход». В принципе.