[英]Expanding parameter pack into lambda with fold expression - gcc vs clang
[英]gcc vs clang: expanding a captured parameter pack twice
考虑以下代码片段:
int main () {
auto first = [&] (auto... one) {
auto faulty = [&] () {
[[maybe_unused]] auto i = (one + ...);
return (one + ...);
};
faulty();
};
first(1);
}
另请参阅“ godbolt” 。
看来,当我尝试展开暗中拍摄参数包one
两次内部拉姆达内,海湾合作委员会抱怨,但铿锵没有。 请注意,当我显式捕获时,例如[&one...]
,gcc不再抱怨。
对我来说,这看起来像是gcc的错误,但是我想请比我更有经验的人做些确认,因为我已经在这里看到了(各种)虫虫行为,并在这里使用了可变参数捕获。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.