2011-08-11 17 views
5

W szablonie funkcji nastawiç na T, typ T&& może lub nie może być odwołanie rvalue, w zależności od kategorii, wartość argumentu:odniesienia zawaleniem dla zmiennych lokalnych

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

Czy ta sama zasada stosuje się również dla zmiennych lokalnych, gdzie typ jest automatycznie wnioskowany?

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

Odpowiedz

4

Tak. auto jest dokładnie określone jako odjęcie argumentu szablonu.

Powiązane problemy