2017-01-18 63 views
0

我知道返回類型autodecltype(auto)的含義。此外,我知道auto&&變量聲明。所以,我想auto&&的返回類型:函數結果auto &&

template <class X, class Y> 
auto a(X &&x, Y &&y) -> auto { 
    return x+y; 
} 

template <class X, class Y> 
auto b(X &&x, Y &&y) -> decltype(auto) { 
    return x+y; 
} 

template <class X, class Y> 
auto c(X &&x, Y &&y) -> auto&& { // <---- 
    return x+y; 
} 

而且它似乎是一樣decltype(auto)。是bc同樣的事情,還是我失去了一些東西?

回答

3

b("a"s, "b")返回一個臨時字符串。

c("a"s, "b")返回一個懸掛參考。