2017-05-14 45 views
0

我正在學習C++。 有時,我想知道在調試過程中,「元素」作爲下列函數的輸入是參考(= &)還是右值參考(= & &)。我可以知道輸入增量是參考(&)還是右值參考(&&)?

// This is an example code to explain my question simply. 
template <typename Element> 
void add_container_side(Element&& element) { 
    static std::vector vec; 
    vec.push_back(std::forward<Element>(element)); 
} 

難道我有辦法知道的「元素」是引用(= &)或右值引用(= & &)僅通過跟蹤與調試器這個功能呢?換句話說,我可以在不使用此函數之前讀取堆棧調試器的情況下知道它嗎?我真正的代碼有很深的堆棧。我正在使用日食的CDT。

非常感謝。

+2

調試器顯示'元素'被推斷爲什麼類型?推導'T&'意味着左值引用,否則右值引用 –

+0

@ M.M:謝謝你告訴我。我不知道。我確認了。當我把左值放到我的代碼中時,它的符號和右值沒有任何標記,就像你說的那樣。再次感謝你。 – mora

回答

1

調試器應顯示哪些模板參數Element推斷到:

  • T &意味着參數是一個左值。
  • T表示參數是一個prvalue。
  • T &&表示參數是一個xvalue。