Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ein leerer Attributblock ist nicht zulässig
Hinweise
Die eckigen Klammern wurden vom Compiler als Attributblock interpretiert, aber es wurden keine Attribute gefunden.
Der Compiler generiert diesen Fehler möglicherweise, wenn Sie eckige Klammern als Teil der Definition eines Lambda-Ausdrucks verwenden. Dieser Fehler tritt auf, wenn der Compiler nicht bestimmen kann, ob die eckigen Klammern Teil der Definition eines Lambda-Ausdrucks oder eines Attributblocks sind. Weitere Informationen zu Lambdaausdrücken finden Sie unter Lambda Expressions (Lambdaausdrücke).
So beheben Sie diesen Fehler
Wenn die eckigen Klammern Teil eines Attributblocks sind:
Geben Sie mindestens ein Attribut im Attributblock an.
Entfernen Sie den Attributblock.
Wenn die eckigen Klammern Teil eines Lambda-Ausdrucks sind, stellen Sie sicher, dass der Lambda-Ausdruck gültige Syntaxregeln befolgt.
Weitere Informationen zur Syntax von Lambda-Ausdrücken finden Sie unter Lambda-Ausdruckssyntax.
Beispiele
Im folgenden Beispiel wird C3409 generiert.
// 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 {};
Im folgenden Beispiel wird C3409 generiert, da ein Lambda-Ausdruck die mutable Spezifikation verwendet, aber keine Parameterliste bereitstellt. Der Compiler kann nicht bestimmen, ob die eckigen Klammern Teil der Definition eines Lambda-Ausdrucks oder eines Attributblocks sind.
// C3409b.cpp
int main()
{
[] mutable {}();
}