【发布时间】:2016-06-16 15:23:34
【问题描述】:
我有以下问题:
当我将一个模板函数传递给另一个模板函数时它不起作用,但是当我将一个普通函数传递给模板函数时它可以正常编译,例如:
template<class It, class Pred>
It findif(It begin,It end, Pred pr){
while (begin!=end && !pr(*begin))
begin++;
return begin;
}
bool p(const string& s){
/* some code */
}
当我将 p 传递给 findif 时,它不起作用:
template<class It, class Pred>
It findif(It begin,It end, Pred pr){
while (begin!=end && !pr(*begin))
begin++;
return begin;
}
template<class T
bool p(const T& s){
/* some code */
}
【问题讨论】:
-
你是怎么通过的?你得到什么错误?
-
很可能,您正在尝试将未实例化的模板传递给算法。你不能这样做,模板不是可调用的对象。 C++ 中也没有泛型函数。
-
@NathanOliver 我得到
-
请考虑stackoverflow.com/help/mcve 以更快地获得更好的帮助。