共用方式為


編譯器錯誤 C3409

不能使用空白的屬性區塊

備註

方括弧是由編譯程式解譯為 屬性 區塊,但找不到任何屬性。

當您使用方括弧做為 Lambda 運算式定義的一部分時,編譯程式可能會產生此錯誤。 當編譯程式無法判斷方括號是 Lambda 運算式或屬性區塊定義的一部分時,就會發生此錯誤。 如需 Lambda 運算式的詳細資訊,請參閱 Lambda 運算式

更正這個錯誤

  1. 如果方括弧是屬性區塊的一部分:

    1. 在屬性區塊中提供一或多個屬性。

    2. 拿掉屬性區塊。

  2. 如果方括弧是 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 {}();
}

另請參閱

attribute
Lambda 運算式
Lambda 運算式語法