template <typename T>
T f(T a1,T a2)
{
.........................
}
显示实参
f<int >(1,2);
显示实例化
template int f<int >(int ,int);(申明)
显示特化
template <> int f<int> (int,int)(定义)
{
...........
}
强制 从模版中挑选
f<>(2,3);
在函数调用,取函数地址时 实参推演(左值,限定,基类)
int (* p)(int ,int)=&f; int(*p) (int ,int )=& f<int,int>
f(2,3); f<int,int>(2,3);
1.编译模版时,编译器检查
2.实例化时(在实例化点 再编译),编译器检查
函数模版 只能出现在模版定义中
函数模版实例 可以出现在模版定义和非定义中
//////////////////////
1.非模版函数优先级高
2.候选---〉可行实例化(有特化否〈)(有非模版否)--〉选中
3.依赖模版参数的在实例点解析,不依赖的在模版定义时解析
posted on 2006-05-27 15:31
黄大仙 阅读(974)
评论(0) 编辑 收藏 引用 所属分类:
c++