C++ 代码的含义是什么?

C++ 代码的含义是什么?,c++,C++,我读过一些用c define定义函数的文章,我不理解[&]()->long int的用法。这是函数返回的赋值类型。谁能为我详细解释一下?谢谢 # define TEMP_FAILURE_RETRY(expression) \ [&]() -> long int \ {

我读过一些用c define定义函数的文章,我不理解[&]()->long int的用法。这是函数返回的赋值类型。谁能为我详细解释一下?谢谢

    # define TEMP_FAILURE_RETRY(expression)                 \
        [&]() -> long int                               \
        {                                               \
            long int __result;                          \   
            do  __result = (long int)(expression);      \   
            while (__result == -1L && errno == EINTR);  \
            return __result;                            \
        }()

它是以下形式的lambda表达式:
[captures](params)->ret{body}

  • [&]通过引用捕获lambda主体中使用的所有自动变量,如果存在,则通过引用捕获当前对象
  • 没有参数
  • 返回类型为
    long int
  • {}包含lambda的定义

详情请参阅

这是λ,但它是C++,而不是C。谢谢,它确实是λ。似乎我应该对C++11进行系统的研究,然后后面的
()
一生成就调用lambda(首先否定lambda的需要?)