范围保护的语言支持

时间:2015-08-12 09:31:25

标签: c++ raii c++17

范围保护非常 C ++ -way成语。它很好地与异常交互并符合RAII。 C ++ 没有范围保护的原生支持。我是说干净的语法。目前我只能编写一个辅助类:c-tor将lambda存储为data-member,d-tor调用lambda(在范围出口或异常抛出时)。

C ++ 目前是否有任何关于范围保护的方便提法?

我的意思是int * i = new int; ~[&i] { if (i) { delete i; i = nullptr; } }; ...或者甚至是(默认情况下捕获为 ref ~{ /* statments */; }。当lambda语法只是具有struct的{​​{1}}的语法糖时,对于"内联" - 匿名operator ()的构造函数,可能存在lambda-similar-syntax。

0 个答案:

没有答案