类和函数的模板Arg推导之间的差异

时间:2014-05-18 11:50:03

标签: c++ templates overloading template-specialization

当我有几个模板类的部分特化,并且我实例化该模板类的对象时,TAD尝试找到适合模板参数的类的最专业版本,并且该类被实例化,即我是怎么理解的。

但是当有多个具有相同数量的函数参数的重载模板函数和任意数量的模板参数时,函数会发生什么。如何解决函数调用,是否可以将所有与TAD匹配的函数发送到重载决策,或者只是发送到重载决策的最专业函数?

例如,编译器如何知道为vector *?

调用重载
template <typename A> void f(vector<A> *g){}

template <typename B> void f(B*){}

template <typename C> void f(C){}

int main(){
    vector<int> vec;
    f(&vec);
    return 0;
} 

0 个答案:

没有答案