programming/programming general

[C++] EMCP Lambda expression

Roien 2018. 3. 25.
반응형

Lambda expression

  : 하나의 표현식

  소스 코드의 일부


  std::find_if(container.begin(), container.end(),

      [](int val) { return 0 < val && val < 10; });


Closure

  : 람다에 의해 만들어진 실행시점 객체

  capture mode에 따라, closure가 capture한 자료의 복사본을 가질 수동 ㅣㅆ고,

  그 자료에 대한 참조를 가질 수동 ㅣㅆ음

  위 ex.에서 fin_if 호출 시 closure는 실행시점에서 셋째 인수로 전달되는 객체


Closure clss

  : closure를 만드는 데 쓰인 class

  각각의 Lambda에 대해 compiler는 고유한 closure class를 만들어 냄

  Lambda 안의 문장들은 해당 closure class의 member 함수들 안의 실행 가능한 명령들이 됨

반응형

댓글