본문 바로가기

람다

[C++11] 이름 없는 함수, 람다(Lambda)(2) 이름 없는 함수, 람다(Lambda)(1) 링크는 다음과 같습니다.2014/12/11 - [Programming/C++11&14] - [C++11] 이름 없는 함수, 람다(Lambda)(1)람다에 대한 설명에 앞서서 람다의 구조에 대한 이미지를 다시 보도록 하겠습니다.1. 캡처(Capture)캡처는 해당 람다 구문을 포함하고 있는 Scope에 선언된 변수를 사용할 수 있게 해줍니다.캡처는 이미지에서 [=]로 표시된 부분입니다.기본적으로 []를 사용하면 Scope의 변수에 접근이 불가능하게 됩니다. #include using namespace std; void main() { int a = 0, b = 1; []() { // cout 더보기
[C++11] 이름 없는 함수, 람다(Lambda)(1) C++11에서 새롭게 추가된 문법은 람다입니다.람다는 그리스어 알파벳의 11번째 글자로 이런 모양으로 생겼습니다.이미 이전 C++11 포스팅([C++11] Range-Based For Loop)에서 람다를 사용한 for_each 구문을 사용한 적이 있었습니다.람다는 익명 함수(Anonymous Function)이라고도 부릅니다.함수의 몸체(Body)는 있지만 이름(Name)이 없기 때문입니다.람다는 STL의 함수 객체(Function Object 혹은, Functor)처럼 동작합니다.함수 객체처럼 암시적으로 함수 객체 클래스를 만들고, 함수 객체를 생성해서 전달합니다.혹시나 함수 객체를 모르시는 분은 STL을 공부하시는 것을 추천합니다. 람다는 함수 포인터와 함수 객체에 비해 다음과 같은 장점이 있습니다.. 더보기