Externe Funktionsdefinition bei Templateklassen



  • Hallo

    Ich habe:

    template<class T> class bar
    {
      public:
        char foo(int a);
    };
    char bar::foo(int a)
    {
      return 'a';
    };
    

    Nun habe ich die Exception E2102: Template 'bar<T>' kann ohne Spezifizierungsparameter nicht verwendet werden
    Wie kann ich eine Klasseninterne Funktion definieren bei welcher die Template-Argumente egal sind/vernachlässigbar sind?


  • Mod

    EOutOfResources schrieb:

    Wie kann ich eine Klasseninterne Funktion definieren bei welcher die Template-Argumente egal sind/vernachlässigbar sind?

    Indem du sie einfach nicht benutzt. Das template... musst du aber trotzdem davorschreiben.



  • Beim Beispiel klappts Super aber beim echten Projekt habe ich drei Fehler:
    E2188(Ausdruckssyntax)
    E2401(Ungültige Template-Argumentenliste)
    E2040(Deklaration nicht ordnungsgemäß abgeschlossen)


  • Mod

    EOutOfResources schrieb:

    Beim Beispiel klappts Super aber beim echten Projekt habe ich drei Fehler:
    E2188(Ausdruckssyntax)
    E2401(Ungültige Template-Argumentenliste)
    E2040(Deklaration nicht ordnungsgemäß abgeschlossen)

    Tja. Da wirst du wohl irgendeinen Syntaxfehler haben. Das Grundprinzip funktioniert jedenfalls, egal ob bei Beispielprogrammen oder großen Projekten.



  • template <typename T>char bar<T>::foo (int a) {
    	return 'a';
    }
    

Anmelden zum Antworten