gpt4 book ai didi

c++ - 函数模板优先级

转载 作者:行者123 更新时间:2023-11-30 04:29:53 24 4
gpt4 key购买 nike

template<typename T, size_t length> void f(T (&)[length]){
cout<<"array"<<endl;
}

template<typename T> void f(T&){
cout<<"generic"<<endl;
}

template<typename T, typename enable_if<is_array<T>::value, int>::type =0> void f(T&){
cout<<"generic (is array)"<<endl;
}

是否有任何情况(即调用 T 时的任何 f<T>())函数模板的最新版本优先于其他版本?

最佳答案

没有。如果 T 是数组类型,则第一个版本胜过第二个和第三个函数(否则第二个和第三个函数将不明确)。如果 T 不是数组类型,则由于 enable_if,第三个函数不可用,并且由于第一个不匹配,将使用第二个。

关于c++ - 函数模板优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9048033/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com