[问题] 巢状 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