다음을 통해 공유


컴파일러 오류 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!");
}

참고 항목

람다 식