局部变量的引用折叠
Posted
技术标签:
【中文标题】局部变量的引用折叠【英文标题】:reference collapsing for local variables 【发布时间】:2011-08-11 09:39:39 【问题描述】:在以T
参数化的函数模板中,T&&
类型可能是也可能不是右值引用,具体取决于参数的值类别:
template <typename T>
void function(T&& x)
// ...
std::string some_named_string;
function(some_named_string); // T&& is std::string&
function(std::string("hello")); // T&& is std::string&&
同样的规则是否也适用于自动推断类型的局部变量?
auto&& x = some_named_string; // is x a std::string& here?
auto&& y = std::string("hello"); // is y a std::string&& here?
【问题讨论】:
【参考方案1】:是的。 auto
完全指定为模板参数推导。
【讨论】:
以上是关于局部变量的引用折叠的主要内容,如果未能解决你的问题,请参考以下文章
C语言局部变量与全局变量重名时的优先级问题(当局部变量和全局变量同时存在的时候,优先引用局部变量,而不去引用全局变量)