template-Methode Spezialisierung mit template Klasse



  • Ich würde gerne eine template-Funktion spezialieren mit einer template-Klasse. Leider klappt das nicht, und ich würde gerne verstehen, warum das nicht geht:

    template<typename T>
    class A
    {
    	T val;
    };
    
    template<typename T>
    T func(T input)
    {
    	//+//do something
    	return input;
    };
    
    template<>
    template<typename T>
    A<T> func(A<T> input)
    {
    	//do something different
    	return input;
    };
    

    error C2910: 'func' : cannot be explicitly specialized

    Würde mich freuen, wenn mir jemand weiterhelfen könnte.



  • Funktionen kann man nicht partiell spezialisieren. Was Du eigentlich willst, ist, dein eines Funktionstemplate mit einem etwas spezielleren zu überladen. Dazu löschst Du einfach das "template<>" und bist fertig.



  • stimmt, das will ich. Wenn man die Lösung hat, ist es ganz logisch.
    Vielen Dank.


Anmelden zum Antworten