Arduino에서 쉽게 클로저를 만들려고했습니다.

2075 단어 C++11Arduino
위의 일 계속.

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에서는 제대로 움직입니다.


뭔가 실수와 문제점이 있으면 코멘트 부탁드립니다.

좋은 웹페이지 즐겨찾기