memomemo

asしかやった事ない私がつまずいたとこメモです。なんか間違ってたらコメントください。

なんぞや std::function<void()> 

コールバックができるー C++11からこんな書き方ができるようになったらしい

Button* Button::create(const std::function<void()>& callback)
{
  _callback = callback;
}
//よびかた
void Butoon::onPush()
{
  if(_callback) {_callback();}
}

渡し方

std::function<void()> callback = [this]() {
    this->onPush();
};
Button::create(callback);

Button* _button = Button::create([this]() {
    this->onPush();
});

引数と戻り値ある時

std::function<int(int)> f;
f = [this](int x) { return x + 1; };

cocos2d-x: CallFunc Class Referenceがこの形なのね。
runActionSequenceで渡してあげるのが、この書き方か。