谢谢L大解惑
但我还是有观念不太明白
explicit是我故意写上去想确认观念
1. 光写 [f2] 这样 , "f2 继承自它抓取的变量的常数性" 这是规则噜?
所以他并不是[f2=f2] 也不是[f2(f2)] 而是compiler内部自己会想办法复制
(会说想办法是因为我自己无法复制, 问题二)?
2. http://ideone.com/JzEnVF
因为我刻意写explicit, 我预期他[f4=f3] 会不给过 [f4(f3)] 会给过
但结论他的error code都一样
为什么他规则会是这样?
那不就变成我根本无法capture by value 一个copy cstr 写explicit的物件吗?
谢谢
作者:
LPH66 (-6.2598534e+18f)
2016-10-30 12:11:001. 这个是我回文里那个连结提到的, 我不确定标准是不是这样2. [f4=f3] 或 [f4(f3)] 这种带初始化的 capture会如上所言当做有个 auto 在那里, 那这就跟一般变量宣告和初始化一样; 同样的 class 你也无法使用这种方式喔, 仔细看了一下, f4(f3) 理论上要给过, 这我要看看..嗯, 我想了一下应该是不行, 这里理论上还是隐式复制因为你借由宣告 lambda 把一个外面的物件给隐式复制到lambda class 里面去了, 这个复制是隐式的所以会被 explicit 挡掉; 话说回来, 现在好像也没有explicit copy ctor 的用途了所以...1. 回头看了连结, 这是标准规定无误; 里面有引用了标准原文