
Thanks Michael, I did not think sooner to the 'else if'. But there is one problem with the 'else if' : you can not do calculations between the tests. When I work often my code looks like : // retrieve meshes from prototype Breakable { // find loaded meshes std::set<Mesh*> lLoadedMeshes; { // some calculations that fill lLoadedMeshes } if(lLoadedMeshes.empty()) { break; } // find loadable scenes that uses the already loaded meshes std::set<Scene*> lLoadableScenes; { // some calculations that fill lLoadableScenes // it uses the result of lLoadedMeshes } if(lLoadedScenes.empty()) { break; } // and so on.. } In that case, the 'breakable' is justified in my opinion, whereas in the example you gave, the 'else if ' seems even simplier. --- En date de : Dim 6.9.09, Michael Caisse <boost@objectmodelingdesigns.com> a écrit : De: Michael Caisse <boost@objectmodelingdesigns.com> Objet: Re: [boost] [Boost.Breakable] Any interest in a Boost Breakable library? À: boost@lists.boost.org Date: Dimanche 6 Septembre 2009, 22h43 Pierre Morcello wrote:
Breakable { if(!filestream.bad()) { log("error at opening file"); break; }
if(!filestream.good()) { log("error inside the file (eof)"); break; }
if(!xmlLoadFrom(filestream)) { log("the file is no xml document."); break; } // and so on, to test if the xml is valid, etc... }
And why not just add the else? if(!filestream.bad()) { log("error at opening file"); } else if(!filestream.good()) { log("error inside the file (eof)"); } else if(!xmlLoadFrom(filestream)) { log("the file is no xml document."); } -- ---------------------------------- Michael Caisse Object Modeling Designs www.objectmodelingdesigns.com _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost