作者dreamboat66 (小嫩)
看板C_and_CPP
标题[问题] VC建构行为与GCC不一样
时间Fri Oct 14 21:22:03 2016
问题(Question):
为什麽这段code
在VS 2015跑的时候 完全不会跑到这个Foo(T&&...) 建构子
然後我百思不得其解的时候把 Foo() = default 改成
Foo(){}
就跑了?
1. 如果没跑 那他跑什麽?
2. Foo(){} 不等於 Foo() = default吗???
谢谢
预期的正确结果(Expected Output):
如ideone 的结果一样
程式码(Code):(请善用置底文网页, 记得排版)
http://ideone.com/W26q8L
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 27.242.160.186
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1476451330.A.F2F.html
1F:推 LPH66: 我猜这跟 copy elision 有关: 标准规定在某些状况下 10/15 00:28
2F:→ LPH66: 呃等等, 先忽略我的话...这跟 copy elision 好像无关 10/15 00:29
3F:推 LPH66: 我在我的 VC2013 上试会出 C2580, google 了一下有人说 10/15 00:37
4F:→ LPH66: 这个似乎是 VC 的 bug 但已经修掉 10/15 00:37
6F:→ LPH66: 但这跟你的问题好像又有点无关... 10/15 00:38
8F:→ Caesar08: 这是VC的bug,但我也不知道是怎麽引发这问题的 10/15 00:49