以下のコードは WebKit にあります。
RefPtr<Element> element = pendingScript.releaseElementAndClear();
if (ScriptElement* scriptElement = toScriptElement(element.get())) {
NestingLevelIncrementer nestingLevelIncrementer(m_scriptNestingLevel);
IgnoreDestructiveWriteCountIncrementer ignoreDestructiveWriteCountIncrementer(m_document);
//Do something else...
}
}
NestingLevelIncrementer は単純なクラスであり、構築時にカウンターを増加させ、破壊時にカウンターを減少させます。ここで実装を確認できます。
このスクラップでは、数字を直接増やしたり減らしたりするのと同じだと思います。おそらく唯一の利点は数を減らすことですが、新しいクラスが 1 つ導入されます。
このパターンを使用する他の理由はありますか?