| Index: src/IceUtils.h
|
| diff --git a/src/IceUtils.h b/src/IceUtils.h
|
| index f9b03bc75b1f65da97b6f1dc5494750b36af500f..83b3fe9116e4638fe57292d0d600249f66d0ac00 100644
|
| --- a/src/IceUtils.h
|
| +++ b/src/IceUtils.h
|
| @@ -123,6 +123,25 @@ template <typename T> static bool isPositiveZero(T Val) {
|
| return Val == 0 && !std::signbit(Val);
|
| }
|
|
|
| +/// An RAII class to ensure that a boolean flag is restored to its previous
|
| +/// value upon function exit.
|
| +///
|
| +/// Used in places like RandomizationPoolingPause and generating target helper
|
| +/// calls.
|
| +class BoolFlagSaver {
|
| + BoolFlagSaver() = delete;
|
| + BoolFlagSaver(const BoolFlagSaver &) = delete;
|
| + BoolFlagSaver &operator=(const BoolFlagSaver &) = delete;
|
| +
|
| +public:
|
| + BoolFlagSaver(bool &F, bool NewValue) : OldValue(F), Flag(F) { F = NewValue; }
|
| + ~BoolFlagSaver() { Flag = OldValue; }
|
| +
|
| +private:
|
| + const bool OldValue;
|
| + bool &Flag;
|
| +};
|
| +
|
| } // end of namespace Utils
|
| } // end of namespace Ice
|
|
|
|
|