【发布时间】:2015-05-22 20:20:07
【问题描述】:
在范围退出时运行 lambda 似乎是一件基本的事情,我希望它能够标准化。 unique_ptr 这样的东西在应用时会更好,但我发现需要无穷无尽的“一次性”析构函数,尤其是在利用 C 风格的库时。有谁知道这是否即将到来?
【问题讨论】:
-
在哪些情况下,您在范围退出时使用 lambda?
-
在关闭线程池之前等待线程池工作项完成是一个很好的例子(即使抛出异常,您仍然需要等待,否则会使工作人员崩溃)。总是可以为您所做的每一件事创建一个完整的 C++ 包装器,但是在您使用它的情况下,它会产生很多额外的代码。
-
写一份提案?我碰巧喜欢Stefanus Du Toit 的实现(虽然我不知道他为什么叫它
Auto) -
@Barry:这实际上是 Arthur O'Dwyer 的实现 - 请参阅 goo.gl/0t8bXR
-
@sdt 哎呀。我的阅读理解失败了。虽然关于
Auto的评论仍然存在:)
标签: c++ c++14 c++17 scopeguard