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

Reply via email to