【问题标题】:Why doesn't C++ have a const universal reference?为什么 C++ 没有 const 通用引用?
【发布时间】:2014-07-15 16:00:43
【问题描述】:

Scott Meyers says(用于函数模板的参数):

通用引用只能以“T&&”的形式出现!即便是 简单添加 const 限定符就足以禁用 将“&&”解释为通用参考。

为什么 C++ 没有const 通用引用?有什么技术原因吗?

【问题讨论】:

  • 因为在大多数情况下,使用 const rhand 引用的方式与使用 const lhand 引用的方式相同。

标签: c++ c++11 universal-reference


【解决方案1】:

什么是 const 通用引用?这将是一个无法修改的参考。从右值引用移动是一种修改。因此,如果有 const 通用引用这种东西,那简直就是const T&

【讨论】:

  • 如果没用,为什么编译器不禁止const T&&?不应该禁止吗?
  • @ccsadegh 这不是没用的,在一些罕见且复杂的重载解决方案中,您可能需要它来消除歧义。它只是对形成“常量通用引用”没有用处。
猜你喜欢
  • 2020-04-25
  • 2018-10-24
  • 1970-01-01
  • 2012-07-09
  • 2016-10-28
  • 1970-01-01
  • 2020-07-20
  • 2013-11-06
  • 2012-07-09
相关资源
最近更新 更多