Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
In questo articolo
blocco di attributi vuoto non consentito
Le parentesi quadre sono state interpretate dal compilatore come blocco di attributi , ma non sono stati trovati attributi.
Il compilatore può generare questo errore quando si usano parentesi quadre come parte della definizione di un'espressione lambda. Questo errore si verifica quando il compilatore non è in grado di determinare se le parentesi quadre fanno parte della definizione di un'espressione lambda o di un blocco di attributi. Per altre informazioni sulle espressioni lambda, vedere Espressioni lambda in C++.
Se le parentesi quadre fanno parte di un blocco di attributi:
Specificare uno o più attributi nel blocco di attributi.
Rimuovere il blocco di attributi.
Se le parentesi quadre fanno parte di un'espressione lambda, assicurarsi che l'espressione lambda segua le regole di sintassi valide.
Per altre informazioni sulla sintassi delle espressioni lambda, vedere Lambda Expression Syntax.For more information about lambda expression syntax, see Lambda Expression Syntax.
L'esempio seguente genera l'errore 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 {};
L'esempio seguente genera l'errore C3409 perché un'espressione lambda usa la mutable
specifica , ma non fornisce un elenco di parametri. Il compilatore non può determinare se le parentesi quadre fanno parte della definizione di un'espressione lambda o di un blocco di attributi.
// C3409b.cpp
int main()
{
[] mutable {}();
}
attribute
Espressioni lambda
Sintassi delle espressioni lambda