关于【怎么在schedule里面传参数】的疑问

在网上搜到了这么个帖子
http://www.cocoachina.com/bbs/read.php?tid=181100

看到斑竹有回复,起初我是欣喜的。。。然而当我试验的时候发现好像并没有什么卵用。

我的报错和第二页一个哥们一样,也是【显示“没有参与匹配的重载函数” 】

然后我看了一下源代码。

里面斑竹回复的应该是想调用Scheduler::schedule(const ccSchedulerFunc& callback, void *target, float interval, unsigned int repeat, float delay, bool paused, const std::string& key);
这个函数吧。
可是ccSchedulerFunc 的typedef std::function<void(float)> ccSchedulerFunc这个声明不是还是只能接受一个float参数的函数么?

所以斑竹提供的那种方式应该是根本行不通的才对吧。。。

话说我也是最近才接触c++11的新东西,如果理解错了请指正~

但是std::bind和std::function配套使用,应该是需要保证函数的参数格式和返回格式都完全一样的吧???

啊西坝,求助啊!

怎么在schedule里面传参数啊。。。

看下这个:http://www.cocoachina.com/bbs/read.php?tid-217556.html

所以最终的解决方案是用lambda表达式捕获外部变量的方式来模拟传参对吧????那我感觉http://www.cocoachina.com/bbs/read.php?tid=181100这个帖子里面讲的方法实际上是不正确的对吧?

直接用lambda捕获外部变量来的简单些

实际上是把一个函数绑成另一个函数(具体看下std::bind应该可以理解)。欺骗schedule传参。

那个文章。小塔传的是一个局部变量,所以挂了。

哦哦哦!好的,我研究研究,还可以欺骗么!跪谢!