#include <iostream>
template <typename T>
struct decrementer_raii
{
T& var;
decrementer_raii(T& v) : var(v) {}
~decrementer_raii() { --var; }
};
int main()
{
int x = 1;
{
decrementer_raii<int> dec(x);
}
std::cout << x;
}
ICAgICNpbmNsdWRlIDxpb3N0cmVhbT4KICAgIAogICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiAgICBzdHJ1Y3QgZGVjcmVtZW50ZXJfcmFpaQogICAgewogICAgICAgVCYgdmFyOwogICAgICAgZGVjcmVtZW50ZXJfcmFpaShUJiB2KSA6IHZhcih2KSB7fQogICAgICAgfmRlY3JlbWVudGVyX3JhaWkoKSB7IC0tdmFyOyB9CiAgICB9OwogICAgCiAgICBpbnQgbWFpbigpCiAgICB7CiAgICAJaW50IHggPSAxOwogICAgCXsKICAgIAkgICBkZWNyZW1lbnRlcl9yYWlpPGludD4gZGVjKHgpOwogICAgCX0KICAgIAlzdGQ6OmNvdXQgPDwgeDsKICAgIAkKICAgIH0=