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
>>    
> 

Reply via email to