Close, some minor formatting issues .... On 21/7/21 1:06 am, Ryan Long wrote: > --- > rtemstoolkit/rtems-utils.h | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > > diff --git a/rtemstoolkit/rtems-utils.h b/rtemstoolkit/rtems-utils.h > index 4ce9c68..c4a262e 100644 > --- a/rtemstoolkit/rtems-utils.h > +++ b/rtemstoolkit/rtems-utils.h > @@ -47,6 +47,24 @@ 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() )
The syntax I use and posted is: ostream_guard (std::ostream& o_) : o (o_), flags (o_.flags ()) { } First the spaces are what the toolkit uses, there are no extra spaces but the initialiser list is the important piece so I will explain why it is the way it is. The way I have written the code lets you make changes to a struct (or class) without impacting a single line. This struct is pretty simple but more complex structs can have many initialisers and they need to be in order in the initialiser list and if you add or move members the order needs to change. Being able to visually inspect the struct and the list is important. Considers these constructors .... https://git.rtems.org/rtems-tools/tree/rtemstoolkit/rld-symbols.cpp#n72 > + { > + } > + > + ~ostream_guard () > + { > + o.flags( flags ); 2 spaces please. Thanks Chris _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel