From: Benjamin Bihler Date: Mon, 19 Oct 2020 09:09:13 +0000 (+0200) Subject: 0031862: [REGRESSION] Coding - Flags of output stream are modified X-Git-Url: http://git.dev.opencascade.org/gitweb/?a=commitdiff_plain;h=be5b376612b439ad7b337b033270febae772005b;p=occt-copy.git 0031862: [REGRESSION] Coding - Flags of output stream are modified Added RAII class to restore stream flags after dump. --- diff --git a/src/AppDef/AppDef_Variational.cxx b/src/AppDef/AppDef_Variational.cxx index 25b86f3d75..39089f7812 100644 --- a/src/AppDef/AppDef_Variational.cxx +++ b/src/AppDef/AppDef_Variational.cxx @@ -897,6 +897,31 @@ Standard_Integer AppDef_Variational::NbIterations() const // void AppDef_Variational::Dump(Standard_OStream& o) const { + class StreamFlagRestorer + { + public: + + explicit StreamFlagRestorer(std::ostream& stream) : + stream(stream), flags(stream.flags()) + { + } + + ~StreamFlagRestorer() + { + stream.flags(flags); + } + + StreamFlagRestorer(const StreamFlagRestorer& rhs) = delete; + StreamFlagRestorer& operator=(const StreamFlagRestorer& rhs) = delete; + + private: + + std::ostream& stream; + std::ios::fmtflags flags; + }; + + StreamFlagRestorer restorer(o); + o << " \nVariational Smoothing " << std::endl; o << " Number of multipoints " << myNbPoints << std::endl; o << " Number of 2d par multipoint " << myNbP2d << std::endl; @@ -923,7 +948,7 @@ void AppDef_Variational::Dump(Standard_OStream& o) const else { if (myIsOverConstr) o << "The probleme is overconstraint " << std::endl; else o << " Erreur dans l''approximation" << std::endl; - } + } } // //=======================================================================