Article View: de.comp.lang.c++
Article #2140Re: Funktionstemplate als Memberfunktion
From: Enno Sandner
Date: Tue, 16 Apr 1996 11:31
Date: Tue, 16 Apr 1996 11:31
47 lines
1925 bytes
1925 bytes
Matthias Werner wrote:
>
> hi,
>
> ich kam in eine Situation, in der es mir guenstig erschien, eine
> Memberfunction zu schreiben, die fuer alle moeglichen verschiedene Argumente
> jeweils aehnlichen Code besitzt, also:
>
> class X {
> ...
> X& f(int);
> X& f(double);
> X& f(void*);
> ...
> };
>
> wobei die Implementationen von X::f jeweils nur geringfuegig voneinander
> abweichen.
> MMN wuerde eine elegante (und typensiche) Implementation darin bestehen,
> dass f als Funktionstemplate deklariert wird.
> Wuerde f global sein, so waere dies kein Problem.
>
> template <class I> X& f(I i);
>
> Jedoch geben meine Compiler (gcc 2.5.8 und BC 3.1) Fehlermeldungen
> an beim Versuch
>
> class X {
> ...
> template <class I> X& f(I);
> ...
> };
>
> zu deklarieren.
> Warum ist dies nicht moeglich? Diese Moeglichkeit wird bei Stroustrup
> zumindest nicht explizit ausgeschlossen.
> Ein Klassentemplate wuerde auch mir viele Klassen mit jeweils einer
> Memberfunktion liefern, anstatt eine Klasse, deren Memberfunktion
> fuer verschiedene Typen ueberladen wird.
> Habe ich etwas am Template-Konzept falsch verstanden?
>
Nein,
sogenannte 'member-templates' sind im zukuenftigen Standard
enthalten (Auch wenn Dir das momentan wenig helfen wird ...)
Enno
Technical Details
Message-ID:
<317384FC.59E2B600@intellektik.informatik.th-darmstadt.de>Path:
arc1-ca.pugleaf.net!news.th-darmstadt.de!newsReferences:
<4kvppn$pnl@hahn.informatik.hu-berlin.de>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!news.th-darmstadt.de!news From: Enno Sandner <enno@intellektik.informatik.th-darmstadt.de> Newsgroups: de.comp.lang.c++ Subject: Re: Funktionstemplate als Memberfunktion Date: Tue, 16 Apr 1996 13:31:08 +0200 Organization: Fachbereich Informatik, TH Darmstadt Message-ID: <317384FC.59E2B600@intellektik.informatik.th-darmstadt.de> References: <4kvppn$pnl@hahn.informatik.hu-berlin.de> NNTP-Posting-Host: kitz.intellektik.informatik.th-darmstadt.de Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Mailer: Mozilla 2.01 (X11; I; SunOS 4.1.3 sun4m)