2011-08-11 14 views
5

Trong một hàm mẫu tham số trên T, loại T&& có thể hoặc không thể là một tài liệu tham khảo rvalue, tùy thuộc vào loại giá trị của đối số:tham khảo sụp đổ cho các biến địa phương

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&& 

Có quy tắc tương tự cũng áp dụng cho các biến cục bộ nơi loại được suy luận tự động?

auto&& x = some_named_string;  // is x a std::string& here? 
auto&& y = std::string("hello"); // is y a std::string&& here? 

Trả lời

4

Có. auto được chỉ định chính xác làm khấu trừ đối số mẫu.