gpt4 book ai didi

c++ - 为什么 lambda 没有函数尝试 block ?

转载 作者:IT老高 更新时间:2023-10-28 21:36:58 26 4
gpt4 key购买 nike

void foo() try {} catch (...) {}
// OK, function-try-block

[]() try {} catch (...) {} ();
// error: expected ‘{’ before ‘try’

[]() { try {} catch (...) {} } ();
// OK, extra curly braces`

为什么不允许使用第二种变体?

最佳答案

最初,引入函数try-blocks 是为了能够捕获子对象的构造函数或析构函数中抛出的异常。为了保持一致性,语法被扩展到普通函数。

当然,可以为 lambda 引入这种语法。然而,与构造函数和析构函数相比,简单地将 try block 包含在另一对 { } 中并没有实际优势,除了后者看起来不那么晦涩。

关于c++ - 为什么 lambda 没有函数尝试 block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38817048/

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