"[&]"在C++中意味着什么?

Avi*_*ick -6 c++ c++11

我正在阅读源代码,它包含以下几行.

auto updateSlack = [&](const char slack_type, const double s) {
    if (slack_type == 'e') {
        wns.early_slack = min(s, wns.early_slack);
        tns.early_slack += s;
    }
    else if (slack_type == 'l') {
        wns.late_slack = min(s, wns.late_slack);
        tns.late_slack += s;
    }
};
Run Code Online (Sandbox Code Playgroud)

我对"="运算符后的"[&]"符号感到困惑.任何人都能说出这究竟是什么意思?

dav*_*mac 6

你所展示的是变量声明.

  • auto 表示将推断变量的类型.
  • updateSlack 是变量的名称.
  • = 指定变量将使用某个值进行初始化(通过复制初始化).
  • 余数是一个lambda表达式,它构成变量初始化的值.