Sdílet prostřednictvím


Chyba kompilátoru C3409

prázdný blok atributu není povolený.

Poznámky

Hranaté závorky interpretoval kompilátor jako blok atributů , ale nebyly nalezeny žádné atributy.

Kompilátor může tuto chybu vygenerovat při použití hranatých závorek jako součást definice výrazu lambda. K této chybě dochází, když kompilátor nemůže určit, zda hranaté závorky jsou součástí definice výrazu lambda nebo bloku atributu. Další informace o výrazech lambda najdete v tématu Výrazy lambda.

Oprava této chyby

  1. Pokud jsou hranaté závorky součástí bloku atributů:

    1. Zadejte jeden nebo více atributů v bloku atributu.

    2. Odeberte blok atributu.

  2. Pokud jsou hranaté závorky součástí výrazu lambda, ujistěte se, že výraz lambda dodržuje platná pravidla syntaxe.

    Další informace o syntaxi výrazu lambda naleznete v tématu Syntaxe výrazů lambda.

Příklady

Následující příklad generuje C3409.

// C3409.cpp
// compile with: /c
#include <windows.h>
[]   // C3409
class a {};

// OK
[object, uuid("00000000-0000-0000-0000-000000000000")]
__interface x {};

[coclass, uuid("00000000-0000-0000-0000-000000000001")]
class b : public x {};

Následující příklad generuje C3409, protože výraz lambda používá mutable specifikaci, ale neposkytuje seznam parametrů. Kompilátor nemůže určit, zda jsou hranaté závorky součástí definice výrazu lambda nebo bloku atributu.

// C3409b.cpp

int main()
{
   [] mutable {}();
}

Viz také

attribute
Výrazy lambda
Syntaxe výrazů lambda