반응형
1. 정의
- 람다식, 또는 람다 함수라 부르며 익명 함수를 지칭하는 용어
2. 유의사항(C++)
- C++ 11부터 지원하며, 람다의 인자에 auto는 C++ 14부터 지원
3. 사용법과 특징
- 기본형: [캡처블록](매개변수){표현식}
- 캡처는 복사(=)와 참조(&)중 선택이 가능하고, 캡처형식을 지정 안 할 수도 있음([])
- 캡처는 외부변수에 영향이 있고 매개변수에는 영향을 주지 않음
- 외부변수를 사용하지 않을 때는 []로 선언 가능
4. 사용예
int main()
{
int a = 5;
auto func = [&](int b)
{a += b;};
int c = 5;
func(c);
cout << a << endl;
}
- 위 코드는 캡처 참조
- 캡처 블록은 매개변수에 영향이 없고 위 코드에서 외부변수는 a, &로 선언했기 때문에 결과는 10으로 반환
- 위 코드에서 [&] 대신 [=] 선언 시 컴파일 오류 발생
int main()
{
int a = 5;
auto func = [=](int &b)
{b += a;};
int c = 5;
func(c);
cout << c << endl;
}
- 위 코드는 캡처 복사
- 외부 변수 a가 복사돼서 람다 함수 내에서 사용됨
- 결과는 10
int main()
{
auto func = [](int a, int &b)
{b = a;};
int c = 5;
int d;
func(c,d);
cout << d << endl;
}
- 위 코드는 캡처 지정하지 않음: 외부변수를 사용하지 않기 때문
- 결과는 5
반응형
'Visual Studio' 카테고리의 다른 글
cmd 관리자 모드에서 콘솔명령어 입력 c++ (0) | 2024.04.22 |
---|---|
Visual Studio breakpoint(중단점) 위치 오류 (1) | 2024.02.16 |
C1128 섹션 수가 개체 파일 형식 한도를 초과했습니다. /bigobj (0) | 2023.09.20 |
C4996 ~ deprecated로 선언되었습니다. (0) | 2023.09.20 |
Visual Studio 버전 정보 (0) | 2023.08.29 |