template<class T>
inline T Library<T>::get_isbn()
{
T temp;
cout << "Enter the name/no:" << endl;
cin >> temp;
string ka;
if (typeid(temp) == typeid(ka))
{
while (islower(temp[0]))
{
cout << " Pls enter the using the first letter as capital" << endl;
cin >> temp;
}
}
}
return temp;
}
我正在创建一个模板类,它可以采用整数或string
模板参数,当我使用T
as创建类的对象时string
,它会进入循环并且一切正常。int
但是当我使用模板参数创建一个对象时,它给了我以下两个错误:
错误 C1903:无法从先前的错误中恢复;停止编译
错误 C2228:'.at' 左侧必须有类/结构/联合
我希望如果传递的参数是string
,那么只有检查第一个字母为大写的代码应该运行,否则当我将模板参数指定为int
时,它不应该检查第一个字母。