From 68348ad39f44255087d9aa3edcd9d91f935e9db6 Mon Sep 17 00:00:00 2001 From: Ryan Long Date: Tue, 20 Jul 2021 09:51:34 -0400 Subject: [PATCH] rtems-utils.h: Create ostream_guard --- rtemstoolkit/rtems-utils.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/rtemstoolkit/rtems-utils.h b/rtemstoolkit/rtems-utils.h index 4ce9c68..81bf913 100644 --- a/rtemstoolkit/rtems-utils.h +++ b/rtemstoolkit/rtems-utils.h @@ -47,6 +47,26 @@ namespace rtems bool real = false, size_t line_length = 16, uint32_t offset = 0); + + /* + * Save and restore the output stream's settings. + */ + struct ostream_guard { + std::ostream& o; + std::ios_base::fmtflags flags; + + ostream_guard (std::ostream& o_) + : o (o_), + flags (o_.flags ()) + { + } + + ~ostream_guard () + { + o.flags(flags); + } + }; + } }