完美转发不完美

💡 原文中文,约800字,阅读约需2分钟。
📝

内容提要

C++的完美转发存在问题,调用f时需要移动构造。将f的参数改为右值引用可以避免移动构造的开销,尽管理论上可能导致未定义行为,但在实际中通常能正常执行。

🎯

关键要点

  • C++的完美转发存在问题,调用f时需要移动构造。
  • 将f的参数改为右值引用可以避免移动构造的开销。
  • 在实际中,尽管理论上可能导致未定义行为,但通常能正常执行。
  • 通过修改g函数,可以省去完美转发的开销。
  • 使用reinterpret_cast将f转换为接受右值引用的函数指针,可以避免移动构造。
➡️

继续阅读