LoginSignup
3
3

More than 5 years have passed since last update.

Arduinoでお手軽にクロージャ作ってみた

Posted at

前記事の続き。

Arduinoでクロージャ、もっと簡単に書けないかな?
いろいろ試してたら、いけそうなのができた!

auto func = [] () {
  int x = 0;
  return [ = ]()mutable -> int {return x++;};
};

呼ぶたびに1だけ大きい数を返す関数です。
intを返すラムダ式を返すラムダ式を変数にauto型推論で保持してみました。
内側のラムダ式はコピーキャプチャでmutableです。

ちなみに今までは関数オブジェクトでこんなしてました。

class F {
  private:
    int i = 0;
  public:
   int operator()();
};
int F::operator()(){
  return i++;
} ;

うちのArduinoではちゃんと動いてます。
スクリーンショット 2017-05-15 14.52.51.png

何か間違いやら問題点があればコメントおねがいします。

3
3
7

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3