gpt4 book ai didi

c++ - 无法使用函数参数调用函数模板

转载 作者:行者123 更新时间:2023-11-28 02:20:46 25 4
gpt4 key购买 nike

我终其一生都无法弄清楚这个函数模板中我需要调用的参数类型的复杂组合是怎么回事,但我错过了。我正在尝试调用具有此签名的函数模板:

template <class T> list<T> map(T (*f)(const T &i), const list<T> &il);

我的代码是这样的:

int successor(int n) {
return n+1;
}

int main ()
{
list<int> seq = ez_list(0,1,2,3,4); // I know that this part is right
map(successor, seq); // this function call is not recognized
return 0;
}

Eclipse 说“Invalid arguments ' Candidates are: list<#0> map(#0 (*)(const #0 &), const list<#0>” 但我看不出这与我的有何不同有。请向我解释我的参数有什么问题,即它们如何无法匹配函数模板签名以及它们应该是什么样子才能适合它。

编辑:感谢大家就如何使这个更清洁提出建议,不幸的是, map 的定义来自其他人的代码,我只需要使用它。我会牢记您的建议,以便我将来使用。

最佳答案

int successor(int n)int successor(const int& n) 不同

这是模板实例化所期望的。

关于c++ - 无法使用函数参数调用函数模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32623381/

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