[問題] VC建構行為與GCC不一樣

作者: dreamboat66 (小嫩)   2016-10-14 21:22:03
問題(Question):
為什麼這段code
在VS 2015跑的時候 完全不會跑到這個Foo(T&&...) 建構子
然後我百思不得其解的時候把 Foo() = default 改成
Foo(){}
就跑了?
1. 如果沒跑 那他跑什麼?
2. Foo(){} 不等於 Foo() = default嗎???
謝謝
預期的正確結果(Expected Output):
如ideone 的結果一樣
程式碼(Code):(請善用置底文網頁, 記得排版)
http://ideone.com/W26q8L
作者: LPH66 (-6.2598534e+18f)   2016-10-15 00:28:00
我猜這跟 copy elision 有關: 標準規定在某些狀況下呃等等, 先忽略我的話...這跟 copy elision 好像無關我在我的 VC2013 上試會出 C2580, google 了一下有人說這個似乎是 VC 的 bug 但已經修掉http://stackoverflow.com/questions/37202420但這跟你的問題好像又有點無關...
作者: Caesar08 (Caesar)   2016-10-15 00:48:00
幫你把問題再精簡一下 http://ideone.com/iIDDds這是VC的bug,但我也不知道是怎麼引發這問題的

Links booklink

Contact Us: admin [ a t ] ucptt.com