有些時候我想確保某個函數調用在從其他函數返回之前執行,或者整數遞減。當一個對象超出範圍時執行一些代碼
例如考慮這個代碼:
void doSomething()
{
try
{
.....
.....
return;
.....
.....
.....
return;
......
} catch (...)
}
myvariable--;
}
我想,以確保MYVARIABLE總是遞減,如果有異常,或者回電話沒有母校。 在C++中是否有任何內建對象,或者我應該創建自己的接受std :: function的類,並在對象超出對象析構函數的範圍時執行它?
例如,在C#中有try..catch ... finally塊,最後可以在函數返回之前放置任何想要執行的代碼。
也許使用Boost.ScopeExit? –
標準中沒有任何內容,但按照您的建議編寫自己的「終極」課並不難。 – molbdnilo
是的,完全像Boost.ScopeExit,但我不想使用任何第三方庫。 –