컴파일러 오류 C3498
'var': 관리형 또는 WinRTtype이 있는 변수를 캡처할 수 없습니다.
람다에 관리되는 형식 또는 Windows 런타임 형식이 있는 변수를 캡처할 수 없습니다.
이 오류를 해결하려면
- 관리되는 또는 Windows 런타임 변수를 람다 식의 매개 변수 목록에 전달합니다.
예제
다음 예제에서는 관리되는 형식이 있는 변수가 람다 식의 캡처 목록에 나타나므로 C3498을 생성합니다.
// C3498a.cpp
// compile with: /clr
using namespace System;
int main()
{
String ^ s = "Hello";
[&s](String ^ r)
{ return String::Concat(s, r); } (", World!"); // C3498
}
다음 예제에서는 관리되는 변수s
를 람다 식의 매개 변수 목록에 전달하여 C3498을 해결합니다.
// C3498b.cpp
// compile with: /clr
using namespace System;
int main()
{
String ^ s = "Hello";
[](String ^ s, String ^ r)
{ return String::Concat(s, r); } (s, ", World!");
}