【发布时间】:2022-01-17 11:13:17
【问题描述】:
如果下面是简单函数模板的定义:
template<typename T>
T compare(T a, T b)
{
return a>b ? a : b;
}
是否可以在运行时根据某些用户输入使用不同的模板参数调用它,而不创建类模板,使用不同的T 值,例如:
char type;
cout<<"Enter type: ";
cin>>type;
if( type=='i')
{
int x=compare<int>(3,6);
}
else if( type=='d' )
{
double z=compare<double>(5.1,7.9);
}
..so on
【问题讨论】:
-
你写的例子有什么问题?
-
请使用正确的术语:类模板和函数模板。
-
抱歉,这里有一些错别字,但现在更正了!
-
“不创建类模板” -- 类模板有什么帮助?
-
[OT]:
T是可演绎的,所以int x = compare(3,6);/double z = compare(5.1, 7.9);就足够了。