[C++] 람다(익명) 함수

Eugene CHOI·2021년 3월 28일
0

C/C++

목록 보기
1/9
post-thumbnail

익명(람다) 함수란 별도의 선언 없이 인라인 코드 한 줄로 사용할 수 있는 함수입니다.

[](type parameter) -> return type{statement}

람다 함수를 쉽게 변수에 저장하려면 auto 키워드 를 사용하면 됩니다.
auto는 자료형이 들어가는 자리에 사용할 수 있는 키워드로, 타입을 추론하여 자동으로 타입을 결정하여 주는 키워드입니다.
auto 키워드를 사용한 변수의 자료형이 결정 되는 때는 run time이 아니라 compile time입니다. auto를 사용하는 변수가 동적 타입인 것은 아니기 때문에 compile time에 알 수 없는 타입에 사용할 수는 없습니다. parameter의 자료형과 같은 자리에 말이죠.


사용법

1. auto 타입 추론을 이용하여 람다 함수 저장.

반환형을 명시하지 않아도 상관이 없다.

#include <iostream>

int main(){
	auto f = [](int a, int b){return a + b;};
	printf("%d", f(3,4));
}

---------출력-----------
7
---------출력-----------

2. 반환형을 결정하여 사용하는 람다 함수.

#include <iostream 

int main(){
	auto f = [](int a, int b) -> int {return a + b;};
	printf("%d", f(3,4));
}

7

3. function 타입에 templete을 지정하여 람다 함수 저장.

#include <iostream>
#include <functional>

int main(){
	std::function<int (int, int)> f = [](int a, int b) -> int {return a + b;};
	printf("%d", f(3,4));
}

7

4. statement에 반환문이 없어도 상관이 없습니다.

#include <iostream>

int main(){
	auto f = [](int a, int b){printf("a is %d and b is %d", a, b);};
	f(3,4);
}

a is 3 and b is 4

profile
Hi, my name is Eugene CHOI the Automotive MCU FW developer.

0개의 댓글