В рамках функции-члена я хочу временно установить для переменной-члена определенное значение.
Затем, когда эта функция возвращается, я хочу сбросить эту переменную-член до заданного известного значения.
Чтобы защититься от исключений и множественных возвратов, я сделал это с помощью простого класса, подобного RAII. Он определен в рамках функции-члена.
void MyClass::MyMemberFunction() {
struct SetBackToFalse {
SetBackToFalse(bool* p): m_p(p) {}
~SetBackToFalse() {*m_p=false;}
private:
bool* m_p;
};
m_theVariableToChange = true;
SetBackToFalse resetFalse( &m_theVariableToChange ); // Will reset the variable to false.
// Function body that may throw.
}
Это кажется настолько банальным, что мне стало интересно, есть ли в стандартной библиотеке C++ такой шаблонный класс?
var = false;
... - person M.M   schedule 18.04.2016