Mailinglist Archive: opensuse-programming-de (184 mails)

< Previous Next >
Re: Eigene Ausgabe in C++
  • From: Sebastian Huber <sebastian-huber@xxxxxx>
  • Date: Tue, 7 Oct 2003 12:46:53 +0200
  • Message-id: <200310071246.53691.sebastian-huber@xxxxxx>
On Tuesday 07 October 2003 12:38, Bastian Schern wrote:
> Raimund Hölle schrieb:
> [...]
>
> >> Wie bekomme ich es hin, dass es nicht nur für "string" funktioniert,
> >> sondern für alle Typen die "cout" unterstützt?
> >
> > Ganz einfach - indem du für jeden dieser Typen eine Methode
> > "DebugLog::out()" schreibst:
> >
> > int DebugLog::out(int nAValue) { ...
> > usw.
> >
> > Wichtig hierbei ist, daß du sämtliche Basistypen unterstützen mußt,
> > sonst wird der Compiler bei der Typkonvertierung sich immer wieder über
> > Mehrdeutigkeiten beklagen (auch signed / unsigned-Varianten nicht
> > vergessen).
>
> Das war mir eigentlich schon klar. Das lässt sich doch aber bestimmt
> einfacher lösen, cout unterstützt ja schon alle Standardtypen.
> Geht das nicht irgendwie mit einem Template?

Hi,
klar geht das:

template<typename T> int DebugLog::out( const T& text )
{
// output to console
if( log_to_console == true ) {
cout << text;
}

// output to log file
if( log_to_file == true ) {
file << text;
}

return 0;
}

Ciao
Sebastian

< Previous Next >
Follow Ups