ama*_*el2 4 c++ templates template-specialization
我收到此错误:
严重程序代码说明项目文件行抑制状态错误C2910'addingStuff :: addingStuffFunc':无法显式专用BuckysTemplateSpecialization c:\ users\amanuel\documents\visual studio 2015\projects\buckystemplatespecialization\buckystemplatespecializ
当我尝试运行此代码时:
#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;
}
Run Code Online (Sandbox Code Playgroud)
没有线索为什么..
你只想要:
std::string addingStuff<std::string, std::string>::addingStuffFunc() {
return "Sorry.. Adding strings is Illegal!!";
}
Run Code Online (Sandbox Code Playgroud)
额外template <>被解释为成员函数的模板id,并且代码被解释为它的显式特征<>.但addingStuffFunc不是函数模板,因此错误.
| 归档时间: |
|
| 查看次数: |
3332 次 |
| 最近记录: |