Sehr geehrte Community,
ich möchte eine Spezialisierung von einem Klassen Template.
Diese Spezialisierte Klasse enthält auch eine Spezialisierte
Methode mit anderem Rückgabe Typ aber gleichen Namen.
Wo liegt mein Fehler? Vielen Dank im voraus.
//Standart Template
template<typename T>
class mycontainer
{
private:
T Value;
public:
bool methode();
};
//Spezial Klasse
template<>
class mycontainer<const char*>
{
private:
const char* Value;
public:
void methode();
};
//Standart Methode
template<typename T>
bool mycontainer<T>::methode()
{
return true;
}
//Und das soll die Methode fuer die Spezial Klasse sein!
template<>
void mycontainer<const char*>::methode()
{
}
Arduino IDE Meldung:
Arduino: 1.6.4 (Windows 7), Platine: "Arduino Uno"
In file included from sketch_jun21b.ino:1:0:
Forum.h:29:6: error: template-id 'methode<>' for 'void mycontainer<const
char*>::methode()' does not match any template declaration
void mycontainer<const char*>::methode()
^
Fehler beim Kompilieren.
Dieser Report hätte mehr Informationen mit
"Ausführliche Ausgabe während der Kompilierung"
aktiviert in Datei > Einstellungen
Spezialisieren kann man eben nur die Implementierung, aber nicht das "Interface". Die Klassen-Vorlage sagt "methode() liefert bool". Soll das nicht mehr gelten, dann "hat man eine andere Vorlage".
Meik Juenke schrieb: > //Und das soll die Methode fuer die Spezial Klasse sein! > template<> > void mycontainer<const char*>::methode() > { > } Das template<> muss weg. Dann geht es.
Danke Sebastian, der Compiler mecker schon mal nicht mehr. Zum vollständigen Testen werde ich wohl heute nicht mehr kommen. Euch ein schönen Sonntag! MfG
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.