求教一个关于多点触摸的问题

刚刚接触cocos2dx,照着官方的例子写了一个多点触摸的例子,结果编译失败,提示不知所云

环境: win7 x64 Cocosdx_3.2 vs2012

代码如下
// 头文件
class TtouchLayer : public cocos2d::Layer
{
public:
CREATE_FUNC(TtouchLayer)
bool init();

void onTouchesBegan(const std::vector<cocos2d::Touch*>& touches, cocos2d::Event  *event);
void onTouchesMoved(const std::vector<cocos2d::Touch*>& touches, cocos2d::Event  *event);
void onTouchesEnded(const std::vector<cocos2d::Touch*>& touches, cocos2d::Event  *event);
void onTouchesCancelled(const std::vector<cocos2d::Touch*>& touches, cocos2d::Event  *event);

protected:

};

cpp文件
bool TtouchLayer::init()
{
if (Layer::init())
{
auto listener1 = EventListenerTouchAllAtOnce::create();
listener1->onTouchesBegan = CC_CALLBACK_2(TtouchLayer::onTouchBegan,this);
listener1->onTouchesMoved = CC_CALLBACK_2(TtouchLayer::onTouchMoved,this);
listener1->onTouchesEnded = CC_CALLBACK_2(TtouchLayer::onTouchEnded,this);
listener1->onTouchesCancelled = CC_CALLBACK_2(TtouchLayer::onTouchCancelled,this);

     _eventDispatcher->addEventListenerWithSceneGraphPriority(listener1,this);
    return true;
}
return false;

}

编译提示
error C2562: “std::_Callable_obj<_Ty>::_ApplyX”:“void”函数返回值
1> with
1>
1> _Ty=std::_Bind<true,bool,std::_Pmf_wrap<bool (__thiscall cocos2d::Layer::* )(cocos2d::Touch *,cocos2d::Event *),bool,cocos2d::Layer,cocos2d::Touch *,cocos2d::Event *,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil>,TtouchLayer const ,std::_Ph<1> &,std::_Ph<2> &,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil>
1> ]
1> d:\program files (x86)\microsoft visual studio 11.0\vc\include\xrefwrap(431) : 参见“std::_Callable_obj<_Ty>::_ApplyX”的声明
1> with
1>
1> _Ty=std::_Bind<true,bool,std::_Pmf_wrap<bool (__thiscall cocos2d::Layer::
)(cocos2d::Touch *,cocos2d::Event *),bool,cocos2d::Layer,cocos2d::Touch *,cocos2d::Event *,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil>,TtouchLayer *const ,std::_Ph<1> &,std::_Ph<2> &,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil>
1> ]
1> d:\program files (x86)\microsoft visual studio 11.0\vc\include\functional(239): 参见对正在编译的函数 模板 实例化“_Ret std::_Callable_obj<_Ty>::_ApplyX<_Rx,const std::vector<cocos2d::Touch >&,cocos2d::Event>(_V0_t,_V1_t &&)”的引用
1> with
1>
1> _Ret=void,
1> _Ty=std::_Bind<true,bool,std::_Pmf_wrap<bool (__thiscall cocos2d::Layer::
)(cocos2d::Touch *,cocos2d::Event *),bool,cocos2d::Layer,cocos2d::Touch *,cocos2d::Event *,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil>,TtouchLayer *const ,std::_Ph<1> &,std::_Ph<2> &,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil>,
1> _Rx=void,
1> _V0_t=const std::vector<cocos2d::Touch *> &,
1> _V1_t=cocos2d::Event *
1> ]
1> d:\program files (x86)\microsoft visual studio 11.0\vc\include\functional(239): 参见对正在编译的函数 模板 实例化“_Ret std::_Callable_obj<_Ty>::_ApplyX<_Rx,const std::vector<cocos2d::Touch >&,cocos2d::Event>(_V0_t,_V1_t &&)”的引用
1> with
1>
1> _Ret=void,
1> _Ty=std::_Bind<true,bool,std::_Pmf_wrap<bool (__thiscall cocos2d::Layer::
)(cocos2d::Touch *,cocos2d::Event *),bool,cocos2d::Layer,cocos2d::Touch *,cocos2d::Event *,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil>,TtouchLayer *const ,std::_Ph<1> &,std::_Ph<2> &,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil>,
1> _Rx=void,
1> _V0_t=const std::vector<cocos2d::Touch *> &,
1> _V1_t=cocos2d::Event *
1> ]
1> d:\program files (x86)\microsoft visual studio 11.0\vc\include\functional(239): 编译类 模板 成员函数“void std::_Func_impl<_Callable,_Alloc,_Rx,_V0_t,_V1_t>::_Do_call(_V0_t,_V1_t &&)”时
1> with
1>
1> _Callable=_MyWrapper,
1> _Alloc=std::allocator<std::_Func_class<void,const std::vector<cocos2d::Touch *> &,cocos2d::Event *>>,
1> _Rx=void,
1> _V0_t=const std::vector<cocos2d::Touch *> &,
1> _V1_t=cocos2d::Event *
1> ]
1> d:\program files (x86)\microsoft visual studio 11.0\vc\include\functional(516): 参见对正在编译的类 模板 实例化“std::_Func_impl<_Callable,_Alloc,_Rx,_V0_t,_V1_t>”的引用
1> with
1>
1> _Callable=_MyWrapper,
1> _Alloc=std::allocator<std::_Func_class<void,const std::vector<cocos2d::Touch *> &,cocos2d::Event *>>,
1> _Rx=void,
1> _V0_t=const std::vector<cocos2d::Touch *> &,
1> _V1_t=cocos2d::Event *
1> ]
1> d:\program files (x86)\microsoft visual studio 11.0\vc\include\functional(516): 参见对正在编译的函数 模板 实例化“void std::_Func_class<_Ret,_V0_t,_V1_t>::_Do_alloc<_Myimpl,_Ty,_Alloc>(_Fty &&,_Alloc)”的引用
1> with
1>
1> _Ret=void,
1> _V0_t=const std::vector<cocos2d::Touch *> &,
1> _V1_t=cocos2d::Event ,
1> _Ty=std::_Bind<true,bool,std::_Pmf_wrap<bool (__thiscall cocos2d::Layer::
)(cocos2d::Touch *,cocos2d::Event *),bool,cocos2d::Layer,cocos2d::Touch *,cocos2d::Event *,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil>,TtouchLayer *const ,std::_Ph<1> &,std::_Ph<2> &,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil>,
1> _Alloc=std::allocator<std::_Func_class<void,const std::vector<cocos2d::Touch *> &,cocos2d::Event >>,
1> _Fty=std::_Bind<true,bool,std::_Pmf_wrap<bool (__thiscall cocos2d::Layer::
)(cocos2d::Touch *,cocos2d::Event *),bool,cocos2d::Layer,cocos2d::Touch *,cocos2d::Event *,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil>,TtouchLayer *const ,std::_Ph<1> &,std::_Ph<2> &,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil>
1> ]
1> d:\program files (x86)\microsoft visual studio 11.0\vc\include\functional(516): 参见对正在编译的函数 模板 实例化“void std::_Func_class<_Ret,_V0_t,_V1_t>::_Do_alloc<_Myimpl,_Ty,_Alloc>(_Fty &&,_Alloc)”的引用
1> with
1>
1> _Ret=void,
1> _V0_t=const std::vector<cocos2d::Touch *> &,
1> _V1_t=cocos2d::Event ,
1> _Ty=std::_Bind<true,bool,std::_Pmf_wrap<bool (__thiscall cocos2d::Layer::
)(cocos2d::Touch *,cocos2d::Event *),bool,cocos2d::Layer,cocos2d::Touch *,cocos2d::Event *,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil>,TtouchLayer *const ,std::_Ph<1> &,std::_Ph<2> &,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil>,
1> _Alloc=std::allocator<std::_Func_class<void,const std::vector<cocos2d::Touch *> &,cocos2d::Event >>,
1> _Fty=std::_Bind<true,bool,std::_Pmf_wrap<bool (__thiscall cocos2d::Layer::
)(cocos2d::Touch *,cocos2d::Event *),bool,cocos2d::Layer,cocos2d::Touch *,cocos2d::Event *,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil>,TtouchLayer *const ,std::_Ph<1> &,std::_Ph<2> &,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil>
1> ]
1> d:\program files (x86)\microsoft visual studio 11.0\vc\include\functional(516): 参见对正在编译的函数 模板 实例化“void std::_Func_class<_Ret,_V0_t,_V1_t>::_Reset_alloc<_Ty,std::allocator<std::_Func_class<_Ret,_V0_t,_V1_t>>>(_Fty &&,_Alloc)”的引用
1> with
1>
1> _Ret=void,
1> _V0_t=const std::vector<cocos2d::Touch *> &,
1> _V1_t=cocos2d::Event ,
1> _Ty=std::_Bind<true,bool,std::_Pmf_wrap<bool (__thiscall cocos2d::Layer::
)(cocos2d::Touch *,cocos2d::Event *),bool,cocos2d::Layer,cocos2d::Touch *,cocos2d::Event *,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil>,TtouchLayer const ,std::_Ph<1> &,std::_Ph<2> &,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil>,
1> _Fty=std::_Bind<true,bool,std::_Pmf_wrap<bool (__thiscall cocos2d::Layer::
)(cocos2d::Touch *,cocos2d::Event *),bool,cocos2d::Layer,cocos2d::Touch *,cocos2d::Event *,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil>,TtouchLayer *const ,std::_Ph<1> &,std::_Ph<2> &,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil>,
1> _Alloc=std::allocator<std::_Func_class<void,const std::vector<cocos2d::Touch *> &,cocos2d::Event *>>
1> ]
1> d:\program files (x86)\microsoft visual studio 11.0\vc\include\functional(516): 参见对正在编译的函数 模板 实例化“void std::_Func_class<_Ret,_V0_t,_V1_t>::_Reset_alloc<_Ty,std::allocator<std::_Func_class<_Ret,_V0_t,_V1_t>>>(_Fty &&,_Alloc)”的引用
1> with
1>
1> _Ret=void,
1> _V0_t=const std::vector<cocos2d::Touch *> &,
1> _V1_t=cocos2d::Event ,
1> _Ty=std::_Bind<true,bool,std::_Pmf_wrap<bool (__thiscall cocos2d::Layer::
)(cocos2d::Touch *,cocos2d::Event *),bool,cocos2d::Layer,cocos2d::Touch *,cocos2d::Event *,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil>,TtouchLayer const ,std::_Ph<1> &,std::_Ph<2> &,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil>,
1> _Fty=std::_Bind<true,bool,std::_Pmf_wrap<bool (__thiscall cocos2d::Layer::
)(cocos2d::Touch *,cocos2d::Event *),bool,cocos2d::Layer,cocos2d::Touch *,cocos2d::Event *,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil>,TtouchLayer *const ,std::_Ph<1> &,std::_Ph<2> &,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil>,
1> _Alloc=std::allocator<std::_Func_class<void,const std::vector<cocos2d::Touch *> &,cocos2d::Event *>>
1> ]
1> d:\program files (x86)\microsoft visual studio 11.0\vc\include\functional(692): 参见对正在编译的函数 模板 实例化“void std::_Func_class<_Ret,_V0_t,_V1_t>::_Reset<_Ty>(_Fty &&)”的引用
1> with
1>
1> _Ret=void,
1> _V0_t=const std::vector<cocos2d::Touch *> &,
1> _V1_t=cocos2d::Event ,
1> _Ty=std::_Bind<true,bool,std::_Pmf_wrap<bool (__thiscall cocos2d::Layer::
)(cocos2d::Touch *,cocos2d::Event *),bool,cocos2d::Layer,cocos2d::Touch *,cocos2d::Event *,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil>,TtouchLayer const ,std::_Ph<1> &,std::_Ph<2> &,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil>,
1> _Fty=std::_Bind<true,bool,std::_Pmf_wrap<bool (__thiscall cocos2d::Layer::
)(cocos2d::Touch *,cocos2d::Event *),bool,cocos2d::Layer,cocos2d::Touch *,cocos2d::Event *,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil>,TtouchLayer *const ,std::_Ph<1> &,std::_Ph<2> &,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil>
1> ]
1> d:\program files (x86)\microsoft visual studio 11.0\vc\include\functional(692): 参见对正在编译的函数 模板 实例化“void std::_Func_class<_Ret,_V0_t,_V1_t>::_Reset<_Ty>(_Fty &&)”的引用
1> with
1>
1> _Ret=void,
1> _V0_t=const std::vector<cocos2d::Touch *> &,
1> _V1_t=cocos2d::Event ,
1> _Ty=std::_Bind<true,bool,std::_Pmf_wrap<bool (__thiscall cocos2d::Layer::
)(cocos2d::Touch *,cocos2d::Event *),bool,cocos2d::Layer,cocos2d::Touch *,cocos2d::Event *,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil>,TtouchLayer const ,std::_Ph<1> &,std::_Ph<2> &,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil>,
1> _Fty=std::_Bind<true,bool,std::_Pmf_wrap<bool (__thiscall cocos2d::Layer::
)(cocos2d::Touch *,cocos2d::Event *),bool,cocos2d::Layer,cocos2d::Touch *,cocos2d::Event *,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil>,TtouchLayer *const ,std::_Ph<1> &,std::_Ph<2> &,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil>
1> ]
1> e:\localsource\hopscotch\project\classes\titlescene\touchlayer.cpp(11): 参见对正在编译的函数 模板 实例化“std::function<_Fty> &std::function<_Fty>::operator =<std::_Bind<_Forced,_Ret,_Fun,_V0_t,_V1_t,_V2_t,_V3_t,_V4_t,_V5_t,_V6_t,_V7_t,_V8_t,_V9_t,_V10_t,>>(_Fx &&)”的引用
1> with
1>
1> _Fty=void (const std::vector<cocos2d::Touch *> &,cocos2d::Event ),
1> _Forced=true,
1> _Ret=bool,
1> _Fun=std::_Pmf_wrap<bool (__thiscall cocos2d::Layer::
)(cocos2d::Touch *,cocos2d::Event *),bool,cocos2d::Layer,cocos2d::Touch *,cocos2d::Event *,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil>,
1> _V0_t=TtouchLayer const ,
1> _V1_t=std::_Ph<1> &,
1> _V2_t=std::_Ph<2> &,
1> _V3_t=std::_Nil,
1> _V4_t=std::_Nil,
1> _V5_t=std::_Nil,
1> _V6_t=std::_Nil,
1> _V7_t=std::_Nil,
1> _V8_t=std::_Nil,
1> _V9_t=std::_Nil,
1> _V10_t=std::_Nil,
1> =std::_Nil,
1> _Fx=std::_Bind<true,bool,std::_Pmf_wrap<bool (__thiscall cocos2d::Layer::
)(cocos2d::Touch *,cocos2d::Event *),bool,cocos2d::Layer,cocos2d::Touch *,cocos2d::Event *,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil>,TtouchLayer *const ,std::_Ph<1> &,std::_Ph<2> &,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil>
1> ]
1> e:\localsource\hopscotch\project\classes\titlescene\touchlayer.cpp(11): 参见对正在编译的函数 模板 实例化“std::function<_Fty> &std::function<_Fty>::operator =<std::_Bind<_Forced,_Ret,_Fun,_V0_t,_V1_t,_V2_t,_V3_t,_V4_t,_V5_t,_V6_t,_V7_t,_V8_t,_V9_t,_V10_t,>>(_Fx &&)”的引用
1> with
1>
1> _Fty=void (const std::vector<cocos2d::Touch *> &,cocos2d::Event ),
1> _Forced=true,
1> _Ret=bool,
1> _Fun=std::_Pmf_wrap<bool (__thiscall cocos2d::Layer::
)(cocos2d::Touch *,cocos2d::Event *),bool,cocos2d::Layer,cocos2d::Touch *,cocos2d::Event *,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil>,
1> _V0_t=TtouchLayer const ,
1> _V1_t=std::_Ph<1> &,
1> _V2_t=std::_Ph<2> &,
1> _V3_t=std::_Nil,
1> _V4_t=std::_Nil,
1> _V5_t=std::_Nil,
1> _V6_t=std::_Nil,
1> _V7_t=std::_Nil,
1> _V8_t=std::_Nil,
1> _V9_t=std::_Nil,
1> _V10_t=std::_Nil,
1> =std::_Nil,
1> _Fx=std::_Bind<true,bool,std::_Pmf_wrap<bool (__thiscall cocos2d::Layer::
)(cocos2d::Touch *,cocos2d::Event *),bool,cocos2d::Layer,cocos2d::Touch *,cocos2d::Event *,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil>,TtouchLayer *const ,std::_Ph<1> &,std::_Ph<2> &,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil,std::_Nil>
1> ]

经过测试发现就是在init方法中的红色字体部分的问题,但是不知道为什么错了,搜索了一下论坛也没有返现类似的提问:3:

哎, 函数名字写错了,难怪编译 失败, 让大家看笑话了,呵呵:12:

我也是,不过看了你的帖子才发现,还是要谢谢你。