Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Templates

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
31.03.2005, 16:23 Uhr
Tommix



Hallo,
folgendes Prob:

C++:
class base
{
public:
    base() {}
    virtual ~base() {}

protected:
    template<typename T> void Saturate(T& val, T min, T max);
};

template<typename T>
void base::Saturate(T& val, T min, T max)
{
    if (val < min)
        val = min;
    else if (val > max)
        val = max;
}

/////////////////////////////////////////////////

class derived: public base
{
public:
    derived() {}
    virtual ~derived() {}

private:
    void foo();
};


void derived::foo()
{
    int x = 0;

    Saturate(x, 1, 100);
}

/////////////////////////////////////////////////

int main()
{
    derived bar;
    return 0;
}


führt in der Zeile mit dem Saturate-Aufruf zur Fehlermeldun

Zitat von Compiler:
Funktionsvorlage 'void __thiscall base::Saturate(T &,T,T)' konnte nicht spezialisiert werden
Mit den folgenden Vorlagenargumenten:
'int'

Mache ich da was falsch und wenn ja, was, oder liegt es eher an meinem etwas angegrautem Compiler?

Gruß, Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
31.03.2005, 16:42 Uhr
Th



Hi, bei mir mit dem MS7.1 compiliert er einwandfrei.

Versuch mal explizit zu instanziieren:

C++:
int x = 0;
Saturate<int>(x, 1, 100);


Welchen Compiler benutzt du denn (+Version)?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
31.03.2005, 16:57 Uhr
Tommix




Zitat von Th:
Hi, bei mir mit dem MS7.1 compiliert er einwandfrei.

Versuch mal explizit zu instanziieren:


Geht auch nicht.

Zitat:

Welchen Compiler benutzt du denn (+Version)?

VC6 - der ist für seine Probleme mit Templates hinlänglich bekannt.

Gruß, Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
31.03.2005, 17:57 Uhr
(un)wissender
Niveauwart


Der Code ist korrekt.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: