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