Ich möchte eine generische Klasse erstellen, die eine Methode enthält, die eine Nachricht anzeigt, wenn der Typ der Klasse int ist und die andere, wenn sie doppelt ist. Hier ist mein Code:Spezialisierung von Elementfunktionsvorlagen in C++
template<class T>
class A {
public:
template <T> void B();
};
template<class T>
void A<int>::B{
//some code here
}
template<class T>
void A<double>::B{
//some code here
}
Ich habe die folgenden Fehler:
'double': illegal type for non-type template parameter '__formal'
'A<int>::B': unable to match function definition to an existing declaration
Vielen Dank im Voraus für alle Lösungen.
Ihr Code nicht Ihre Fehler überein. Bitte geben Sie eine [mcve] – NathanOliver
an. Sie sollten nicht denselben Template-Parameternamen für die Funktionsvorlage als Klassenvorlage verwenden. – NathanOliver
Sind Sie sicher, dass "B" auch eine Vorlage sein soll? Aus Ihrer Beschreibung scheint es, als ob Sie möchten, dass "B" eine normale Nicht-Template-Member-Funktion der Klassenvorlage "A" ist. – Angew