0%

C++ 中的 move 和 forward

std::move 和 std::forward 仅仅是进行类型转换的函数(实际上是函数模板). std::move 无条件的将其参数转换为右值, 而 std::forward 只在必要情况下进行这个转换,就是这样.

  1. std::move 执行一个无条件的转化到右值。它本身并不移动任何东西;
  2. std::forward 把其参数转换为右值, 仅仅在那个参数被绑定到一个右值时;
  3. std::move 和 std::forward 在运行时(runtime)都不做任何事.