gpt4 book ai didi

c++ - 这个代码块 [=,&i]()mutable {}() 是什么意思?

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

我在考c++,下面有一个奇怪的代码块,我看不懂。这里,i 是一个 intcode 是一个 char:

[=,&i]()mutable
{
i++;
code = 'b';
std::cout << "i:" <<i<<"""code:"<<code <<cout::endl;
}();

我不知道该如何解释;它看起来不像典型的 C++ 代码块。我在网上搜索了有关此的信息,但找不到关于此类代码风格的任何其他信息。

这段代码是什么意思?

最佳答案

这是一个 lambda function ,2011 年添加到语言中的一项功能。

  • = 表示外部变量的拷贝在内部可用。
  • &i 意味着,尽管有上述内容,但特别是 i 实际上可以通过引用获得。
  • mutable 关键字允许在函数体内修改 code 拷贝。
  • 尾随的 () 在函数声明后立即“运行”该函数。

正如所写,我看不出有任何特别的理由为此使用 lambda。看起来有人成功地达到了他们的目标:迷惑你。

关于c++ - 这个代码块 [=,&i]()mutable {}() 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38150992/

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