代码是什么意思?

时间:2017-09-12 14:53:24

标签: c++

我读过用c定义函数的东西,我无法理解[&]()的用法 - > long int.Is指定函数返回的类型。谁可以为我详细解释它?感谢

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

1 个答案:

答案 0 :(得分:3)

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

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

详情请参阅cpp reference link