我一直在阅读 Scott 关于 c++11 和 14 的最后一篇杰作中的通用引用,尽管有一个参数分配给左值或右值类型引用参数,但在两者之间有一些称为通用引用的东西可以推断为l/rvalue 基于传递的参数的类型特征。我可以理解是什么使参数成为通用引用,但我不清楚的一件事是为什么将 const 添加到类型参数const T&& p
会使 p 成为右值:
template<typename T>
void f(T&& param); // param is an universal reference
template<typename T>
void f(const T&& param); // param is an rvalue reference
当分配给参考参数时,const
做的比这更多。