(主要用于 C++ 等编程语境)移动语义:一种语言/编译器规则与机制,使对象在“转移所有权”时可以把资源(如堆内存、文件句柄)从一个对象移动到另一个对象,避免昂贵的深拷贝,从而提高性能。常与 rvalue references(右值引用)、move constructor(移动构造函数)、move assignment(移动赋值) 一起出现。(在其他语境中也可泛指“move”在语义学层面的意义,但最常见用法是编程领域。)
/muːv sɪˈmæntɪks/
Move semantics can make your C++ code faster.
移动语义可以让你的 C++ 代码更快。
By using move semantics, the function can return a large object efficiently without unnecessary copying, especially when combined with rvalue references and RAII.
通过使用移动语义,函数可以高效返回大型对象而不做不必要的拷贝,尤其是与右值引用和 RAII 结合时。
move 源自拉丁语 movēre,意为“移动、推动”。semantics 源自希腊语 sēmantikos,意为“与意义相关的”。合在一起,字面意思是“关于移动的意义/规则”;在 C++ 中特指对象在“移动(转移资源所有权)”时的语言规则与行为。