Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Überladen von Template-Funktionen

2 views
Skip to first unread message

Markus Brueckner

unread,
Nov 9, 2011, 2:59:19 AM11/9/11
to
Hallo allerseits,

ich bin mir hier gerade bezüglich eines Details etwas unsicher. Ich habe
eine Klasse in der Funktionstemplates mit "normalen" Methoden gemischt
werden. Konkret sieht das am Beispiel so aus:

template <typename T> struct CheckedVariable
{
// Templates-struct zur Überprüfung gewisser Invarianten
};

struct Test
{
template <typename T> void write(CheckedVariable<T> const &param,
int param2) {
// geprüfter Fall
}

template <typename T> void write(T const &param, int param2) {
// ungeprüfter Fall
}

void write(char param, int param2, bool param3) {
// Spezialfall für char mit drittem Parameter
}
};

Ist sowas erlaubt? Im Moment kann ich nur sagen, dass es funktioniert im
Sinne von: für mein Programm werden je nach Aufruf die passenden Funktionen
aufgerufen. Die Frage ist aber: ist das garantiert oder habe ich hier nur
Glück?

Danke schonmal.

Bis dann,
Markus

Thomas Maeder

unread,
Nov 10, 2011, 11:33:46 AM11/10/11
to
Markus Brueckner <ne...@slash-me.net> writes:

> ich bin mir hier gerade bezüglich eines Details etwas unsicher. Ich
> habe eine Klasse in der Funktionstemplates mit "normalen" Methoden
> gemischt werden. Konkret sieht das am Beispiel so aus:
>
> template <typename T> struct CheckedVariable
> {
> // Templates-struct zur Überprüfung gewisser Invarianten
> };
>
> struct Test
> {
> template <typename T> void write(CheckedVariable<T> const &param,
> int param2) {
> // geprüfter Fall
> }
>
> template <typename T> void write(T const &param, int param2) {
> // ungeprüfter Fall
> }
>
> void write(char param, int param2, bool param3) {
> // Spezialfall für char mit drittem Parameter
> }
> };
>
> Ist sowas erlaubt?

Ja.


> Im Moment kann ich nur sagen, dass es funktioniert im Sinne von: für
> mein Programm werden je nach Aufruf die passenden Funktionen
> aufgerufen. Die Frage ist aber: ist das garantiert oder habe ich
> hier nur Glück?

Das ist garantiert.

--- Posted via news://freenews.netfront.net/ - Complaints to ne...@netfront.net ---
0 new messages