rgheck wrote: > On 12/29/2009 02:22 PM, Peter Kümmel wrote: >> After the reply to JMarc I also tought about a template solution. >> Attached a patch, but it's tested only with msvc. >> >> > Don't you only need the one specialization, if all the others are different? > > rh
Making the operator<< a template doesn't work here, additionally then we would have a template in debug.h which slows down compiling a bit. Peter > >> LyXErr& operator<<(LyXErr& l, void const * t) >> -STREAM_OPERATOR(t) >> +{ return toStream(l, t); } >> LyXErr& operator<<(LyXErr& l, char const * t) >> -STREAM_OPERATOR(t) >> +{ return toStream(l, t); } >> LyXErr& operator<<(LyXErr& l, char t) >> -STREAM_OPERATOR(t) >> +{ return toStream(l, t); } >> LyXErr& operator<<(LyXErr& l, int t) >> -STREAM_OPERATOR(t) >> +{ return toStream(l, t); } >> LyXErr& operator<<(LyXErr& l, unsigned int t) >> -STREAM_OPERATOR(t) >> +{ return toStream(l, t); } >> LyXErr& operator<<(LyXErr& l, long t) >> -STREAM_OPERATOR(t) >> +{ return toStream(l, t); } >> LyXErr& operator<<(LyXErr& l, unsigned long t) >> -STREAM_OPERATOR(t) >> +{ return toStream(l, t); } >> LyXErr& operator<<(LyXErr& l, double t) >> -STREAM_OPERATOR(t) >> +{ return toStream(l, t); } >> LyXErr& operator<<(LyXErr& l, string const& t) >> -STREAM_OPERATOR(t) >> +{ return toStream(l, t); } >> LyXErr& operator<<(LyXErr& l, docstring const& t) >> -STREAM_OPERATOR(to_utf8(t)); >> +{ return toStream(l, to_utf8(t)); } >> LyXErr& operator<<(LyXErr& l, FileName const& t) >> -STREAM_OPERATOR(t) >> +{ return toStream(l, t); } >> LyXErr& operator<<(LyXErr& l, ostream&(*t)(ostream&)) >> -STREAM_OPERATOR(t) >> +{ return toStream(l, t); } >> LyXErr& operator<<(LyXErr& l, ios_base&(*t)(ios_base&)) >> -STREAM_OPERATOR(t) >> +{ return toStream(l, t); } >> > >> Peter >> >