ich diesen Fehler:kann nicht explizit spezialisiert werden
Severity Code Description Project File Line Suppression State Error C2910 'addingStuff::addingStuffFunc': cannot be explicitly specialized BuckysTemplateSpecialization c:\users\amanuel\documents\visual studio 2015\projects\buckystemplatespecialization\buckystemplatespecializ
Wenn ich versuche, diesen Code auszuführen:
#include<iostream>
#include<string>
template<class F, class S>
class addingStuff {
public:
addingStuff(F fCons, S sCons) : f(fCons), s(sCons){}
F addingStuffFunc();
private:
F f; S s;
};
template<class F, class S>
F addingStuff<F, S>::addingStuffFunc() {
return(f + s);
}
template<>
class addingStuff<std::string , std::string>{
public:
addingStuff(std::string sConst, std::string s2Const):s(sConst), s2(s2Const){}
std::string addingStuffFunc();
private:
std::string s, s2;
};
template<>
std::string addingStuff<std::string, std::string>::addingStuffFunc() {
return "Sorry.. Adding strings is Illegal!!";
}
int main() {
addingStuff<std::string, std::string> exampleStuff("Hello " , "World");
std::cout << exampleStuff.addingStuffFunc() << std::endl;
}
No Clue Warum ..
Vielen Dank, es hat funktioniert! Ich akzeptiere den Verstärker in 5 Minuten (minumum Zeit) .. Aber noch eine Frage! Warum mache ich Vorlage für die erste Funktion, und ich lasse es einfach für die zweite Funktion heraus? Liegt es daran, dass es sich auf einen bestimmten Datentyp spezialisiert hat? Danke –
amanuel2
@Dasafds Ziemlich viel. – Barry