On Tue, Nov 27, 2007 at 10:25:36PM +0100, Andre Poenitz wrote: > On Tue, Nov 27, 2007 at 08:54:07PM +0100, Andre Poenitz wrote: > > > > > bash ../development/tools/count_lines_of_included_code.sh debug.h > > debug.h : 30091 > > > > ;-( > > Using something "handcrafted" along the lines of > > struct LyXErr { > bool debugging(Debug::type t = Debug::ANY) const; > void endl(); > }; > > LyXErr & operator<<(LyXErr &, const char *); > LyXErr & operator<<(LyXErr &, char); > LyXErr & operator<<(LyXErr &, int); > LyXErr & operator<<(LyXErr &, double); > LyXErr & operator<<(LyXErr &, std::string const &); > LyXErr & operator<<(LyXErr &, docstring const &); > LyXErr & operator<<(LyXErr &, support::FileName const &); > LyXErr & operator<<(LyXErr &, std::ostream &(*)(std::ostream &)); > [... possibly a few more added, no #include, though] > > extern LyXErr lyxerr; > > #define LYXERR(type, msg) \ > do { \ > if (!lyx::lyxerr.debugging(type)) {} \ > else { lyx::lyxerr << msg; lyxerr.endl(); } \ > } while (0) > > > instead of the current std::ostream/boost::nullstream based solution > would cut down total compiled lines from currently 17.9 Mio to 17.0 > Mio, i.e. reduce compilation effort by almost exactly 5%. > > Note that this would also allow us to "magically" pipe "unmodified" > std::strings and docstrings into the same "stream" and therefore > simplify the calling code by removing the need for 170 (rough > guesstimate by grep -R -i -A2 lyxerr | grep to_utf8 | grep -v svn | wc) > 'to_utf8' calls in the code. > > Sounds interesting? > > Andre'
What's the catch? - Martin