[問題] 巢狀 Universal Reference

作者: lovesnake (LoyalDog)   2016-01-28 19:47:02
開發平台(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
作者: Caesar08 (Caesar)   2016-01-28 19:53:00
你這code有好多問題可以挑...
作者: LPH66 (-6.2598534e+18f)   2016-01-28 19:56:00
要用 univ. ref. 請把 std::move std::forward 搞懂不然你傳一傳 rvalue 性就不見了
作者: Caesar08 (Caesar)   2016-01-28 19:57:00
講一個很多人覺得沒差的,既然你寫C++ codemain不要寫int main(void),請寫int main()
作者: firose (guest也是也是也是也是也)   2016-01-28 19:58:00
Universal Reference 是 T&& 不是 const T&&
作者: Caesar08 (Caesar)   2016-01-28 19:58:00
還有const要拿掉,只留下T &&
作者: LPH66 (-6.2598534e+18f)   2016-01-28 19:59:00
版友 dorgonman 的 #1MaeA83g 可以仔細研讀一番
作者: Caesar08 (Caesar)   2016-01-28 19:59:00
最後,你的test2沒有forward declaration我覺得yoco315的翻譯 #19gioP8j 比他的好
作者: yoco (眠月)   2016-01-29 00:26:00
謝謝
作者: uranusjr (←這人是超級笨蛋)   2016-01-29 00:42:00
正妹工程師出沒 <(_ _)>
作者: fr3ak (fr3@K)   2016-01-29 11:43:00
只能推正妹了~~
作者: EdisonX (卡卡獸)   2016-01-31 17:09:00
正咩朝聖

Links booklink

Contact Us: admin [ a t ] ucptt.com