Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
pusty blok atrybutów jest niedozwolony
Uwagi
Nawiasy kwadratowe zostały zinterpretowane przez kompilator jako blok atrybutów , ale nie znaleziono atrybutów.
Kompilator może wygenerować ten błąd, gdy używasz nawiasów kwadratowych w ramach definicji wyrażenia lambda. Ten błąd występuje, gdy kompilator nie może określić, czy nawiasy kwadratowe są częścią definicji wyrażenia lambda lub bloku atrybutu. Aby uzyskać więcej informacji na temat wyrażeń lambda, zobacz Wyrażenia lambda.
Aby poprawić ten błąd
Jeśli nawiasy kwadratowe są częścią bloku atrybutów:
Podaj co najmniej jeden atrybut w bloku atrybutów.
Usuń blok atrybutów.
Jeśli nawiasy kwadratowe są częścią wyrażenia lambda, upewnij się, że wyrażenie lambda jest zgodne z prawidłowymi regułami składni.
Aby uzyskać więcej informacji na temat składni wyrażenia lambda, zobacz Składnia wyrażeń lambda.
Przykłady
Poniższy przykład generuje kod 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 {};
Poniższy przykład generuje kod C3409, ponieważ wyrażenie lambda używa mutable specyfikacji, ale nie udostępnia listy parametrów. Kompilator nie może określić, czy nawiasy kwadratowe są częścią definicji wyrażenia lambda czy bloku atrybutów.
// C3409b.cpp
int main()
{
[] mutable {}();
}