私は最近、Andrei Alexandrescu の 'C++ and Beyond 2012' ( Systematic Error Handling with C++ ) でのトークを見ました。そこで彼は ScopeGuard11 の構成について、具体的にSCOPE_EXIT
(トークの第 2 部、または単にコードをここで読む) について説明しています。同時に、Boost ライブラリを調べ始めて、BOOST_SCOPE_EXIT
マクロ ( Boost.ScopeExit ライブラリ) に気付きました。
これらの 2 つは、実装に関してはまったく異なるようです (BOOST_SCOPE_EXIT
を使用Boost.TypeOf
し、ScopeGuard11 のようなものは何もありませんSCOPE_EXIT
)。また、Boost マクロは、C++11 ではあまり問題にならないパラメータ キャプチャなどに関係しています。しかしそれ以上は、基本的に同じ機能を提供しているようです。
私は正しいですか、それとも何か不足していますか? ScopeGuard11 は、Boost.ScopeGuard と同じ機能を備えた「よりクリーンな」メカニズムですが、下位互換性は低いと言えますか?