編譯器錯誤 C3409
不能使用空白的屬性區塊
備註
方括弧是由編譯程式解譯為 屬性 區塊,但找不到任何屬性。
當您使用方括弧做為 Lambda 運算式定義的一部分時,編譯程式可能會產生此錯誤。 當編譯程式無法判斷方括號是 Lambda 運算式或屬性區塊定義的一部分時,就會發生此錯誤。 如需 Lambda 運算式的詳細資訊,請參閱 Lambda 運算式。
更正這個錯誤
如果方括弧是屬性區塊的一部分:
在屬性區塊中提供一或多個屬性。
拿掉屬性區塊。
如果方括弧是 Lambda 表達式的一部分,請確定 Lambda 運算式遵循有效的語法規則。
如需 Lambda 運算式語法的詳細資訊,請參閱 Lambda 表達式語法。
範例
下列範例會產生 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 {};
下列範例會產生 C3409,因為 Lambda 表達式會使用 mutable
規格,但未提供參數清單。 編譯程式無法判斷方括號是 Lambda 運算式或屬性區塊定義的一部分。
// C3409b.cpp
int main()
{
[] mutable {}();
}