gpt4 book ai didi

c++ - gcc 与 clang : expanding a captured parameter pack twice

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:14:09 24 4
gpt4 key购买 nike

考虑这个代码片段:

int main () {
auto first = [&] (auto... one) {
auto faulty = [&] () {
[[maybe_unused]] auto i = (one + ...);
return (one + ...);
};
faulty();
};
first(1);
}

另见 on godbolt .

似乎当我尝试在内部 lambda 中将隐式捕获的参数包 one 扩展两次时,gcc 会提示,但 clang 不会。请注意,当我明确捕获时,例如 [&one...],gcc 不再提示。

对我来说,这看起来像是一个 gcc 错误,但我想得到比我更有经验的人的一些确认,因为我已经在带有可变捕获的 clang 中看到(不同的)错误行为 here .

最佳答案

这是 GCC 9 中的回归。它已被 reported .

GCC 8 编译代码fine .

关于c++ - gcc 与 clang : expanding a captured parameter pack twice,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56414328/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com