c++函数指针作为参数的问题

usingF=void(constarrayList<int>&);voidtest(std::function<F>f);template<classT>voidrev... using F = void(const arrayList<int> &);
void test(std::function<F>f);
template<class T>void reverse(const arrayList<T> &);
F *f = reverse < int > ;
test(f);//没问题
test(reverse<int>);//报错, 不存在从 "<unknown-type>" 转换到 "std::function<F>" 的适当构造函数
请问传递f和传递reverse<int>区别在哪里啊?
如果我把test参数改为F f,调用test(reverse<int>);就没问题了,是因为reverse<int>到function<F>隐式转化了2次吗
test(std::function<F>f)使用这个参数是为了传递类成员函数
展开
 我来答
匿名用户
2015-06-13
展开全部
考虑是否声明了其他reverse函数,或者意外把其他命名空间的 reverse 函数(例如 std::reverse )引入当前命名空间……
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式