Udostępnij za pomocą


Błąd kompilatora C3492

"var": nie można przechwycić członka anonimowego związku

Uwagi

Nie można przechwycić członka nienazwanego związku.

Aby poprawić ten błąd

  • Nadaj unii nazwę i przekaż pełną strukturę unii do listy przechwytywania wyrażenia lambda.

Example

Poniższy przykład generuje kod C3492, ponieważ przechwytuje członka anonimowego związku:

// C3492a.cpp

int main()
{
   union
   {
      char ch;
      int x;
   };

   ch = 'y';
   [&x](char ch) { x = ch; }(ch); // C3492
}

Poniższy przykład rozpoznaje C3492, podając nazwę unii i przekazując pełną strukturę unii do listy przechwytywania wyrażenia lambda:

// C3492b.cpp

int main()
{
   union
   {
      char ch;
      int x;
   } u;

   u.ch = 'y';
   [&u](char ch) { u.x = ch; }(u.ch);
}

Zobacz też

Wyrażenia lambda