哪里可以为我的C++项目找到一个好的Scope Guard实现?

bod*_*ydo 18 c++ scope guard

我刚刚了解了Scope Guard C++习语.不幸的是,我找不到任何好的实现.

有人能指出我在C++中使用一些好的和可用的Scope Guard实现吗?

谢谢,Boda Cydo.

Jos*_*ley 15

最初的ScopeGuard课程包含在Dr. Dobb的 Andrei Alexandrescu和Petru Marginean 的文章中.稍微改进版,与乔舒亚·莱勒一些变化,请点击这里.(Lehrer的版本是我在我的项目中使用的版本.)它也包含在Loki库中.

Boost现在有一个ScopeExit库,它比ScopeGuard更强大(因为它可以执行任意代码,而ScopeGuard只能调用一个预先存在的函数).

编辑:尽管如此,Scope Guard实际上只是RAII的一个特定应用程序,所以你真的应该至少理解如何实现它的概念.


Kea*_*eks 8

ScopeGuard已经包含在Loki库中(由Andrei Alexandrescu在Modern C++ Design中做广告,我相信你已经听说过这本伟大的书),并且已经足够成熟,可以用于生产代码,imo.

需要明确的是:我们正在谈论使用RAII编写异常安全代码.

附加阅读(在StackOverflow上): ScopeGuard的使用是否真的能带来更好的代码?