スコープ ガードは非常にC++的なイディオムです。例外との相互作用が良好で、RAII に準拠しています。C++には、スコープ ガードのネイティブ サポートはありません。つまり、きれいな構文です。現時点では、ヘルパー クラスしか記述できません。c-tor はラムダをデータ メンバーとして格納し、d-tor はラムダを呼び出します (スコープの終了時または例外スロー時)。
現在、 C++でのスコープ ガードの便利な構文の提案はありますか?
またはのようなものを意味します (デフォルトint * i = new int; ~[&i] { if (i) { delete i; i = nullptr; } }; ...
でキャプチャを参照~{ /* statments */; }
として) 。lambda-syntax が with のシンタックス シュガーにすぎstruct
ないoperator ()
場合、 anonymous の「インライン」デストラクタには lambda-similar-syntax が存在する可能性がありますstruct
。