看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 2013 問題(Question): 如程式碼,因為使用者傳入的參數會經過三層的處理,所以三個function都要用 universal Reference的版本,否則六個函式中有三個是重覆的Code。 結果就是編譯失敗...然而看不懂失敗的訊息... (參數A不能轉為參數B&&) 底下呼叫的是Universal Reference的Function,Template不是應該會產生 rvalue reference的版本,然後overload resolution會選擇到那個版本嗎? 還是我哪裡理解錯誤呢? Orz 謝謝! 程式碼(Code):(請善用置底文網頁, 記得排版) http://ideone.com/UQEChO -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.133.8.232 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1453981626.A.59C.html
Caesar08: 你這code有好多問題可以挑... 01/28 19:53
LPH66: 要用 univ. ref. 請把 std::move std::forward 搞懂 01/28 19:56
LPH66: 不然你傳一傳 rvalue 性就不見了 01/28 19:56
Caesar08: 講一個很多人覺得沒差的,既然你寫C++ code 01/28 19:57
Caesar08: main不要寫int main(void),請寫int main() 01/28 19:58
!! 以前學到傳void就一直這樣寫...原來那樣是C限定的 Orz 謝謝指教
firose: Universal Reference 是 T&& 不是 const T&& 01/28 19:58
Caesar08: 還有const要拿掉,只留下T && 01/28 19:58
LPH66: 版友 dorgonman 的 #1MaeA83g 可以仔細研讀一番 01/28 19:59
Caesar08: 最後,你的test2沒有forward declaration 01/28 19:59
厄..這個...對不起 Orz 打個Sample Code沒有仔細Check Orz
Caesar08: 我覺得yoco315的翻譯 #19gioP8j 比他的好 01/28 20:01
看來我完全沒理解就在亂用了Orz 另外一篇比較長..我慢慢收著看。 ※ 編輯: lovesnake (61.70.250.188), 01/28/2016 21:05:28
yoco: 謝謝 01/29 00:26
uranusjr: 正妹工程師出沒 <(_ _)> 01/29 00:42
fr3ak: 只能推正妹了~~ 01/29 11:43
EdisonX: 正咩朝聖 01/31 17:09