CallFunc:调用的函数没有参数。需要用到 CC_CALLBACK_0,
# define CC_CALLBACK_0(__selector__,__target__, ...) std : :bind( &__selector__,__target__, ##__VA_ARGS__)
CC_CALLBACK_0使用bind。通过绑定实参生成function对象。下面例子,回调函数有2个参数。但是通过绑定后生成的function没有参数了
CallFunc : :create( CC_CALLBACK_0(ActionCallFuncO : :callback, this, _grossini, true)), void ActionCallFuncO : :callback(Node * node, bool cleanup) { node - >removeFromParentAndCleanup(cleanup); }
CallFuncN: 调用的函数需要一个Node。需要用到 CC_CALLBACK_1。
# define CC_CALLBACK_1(__selector__,__target__, ...) std : :bind( &__selector__,__target__, std : :placeholders : :_1, ##__VA_ARGS__)
该声明中有一个占位符留给Node*类型的实参,传递进来。
对c++11的bind和function理解又加深了。