共用方式為


警告 C26444

請勿嘗試宣告沒有名稱的局部變數 (es.84)。

C++ Core Guidelines

ES.84:不要 (嘗試) 宣告沒有名稱的局部變數

未命名的變數宣告會建立在語句結尾捨棄的暫存物件。 具有非特殊行為的這類暫存物件可能會指向配置並立即擲回資源的效率不佳程序代碼,或是無意中忽略非特殊數據的程序代碼。 有時也可能表示宣告錯誤。

備註

  • 此規則會偵測具有手動寫入解構函式或編譯程式產生的解構函式,以可轉移方式呼叫手寫解構函式的類型。
  • 此規則可以標幟程序代碼,以叫用RAII類型的非Trivial建構函式。
  • 如果邏輯用於較高層級表達式,則會暫時略過這些邏輯。 其中一個範例是暫時傳遞為自變數,或用來叫用函式。

程式代碼分析名稱: NO_UNNAMED_RAII_OBJECTS

範例

struct A { A(int i); ~A(); };
void Foo()
{
    A{42}; // warning C26444: Don't try to declare a local variable with no name (es.84).
}

若要修正此問題,請將暫存物件轉換成本機物件。

struct A { A(int i); ~A(); };
void Foo()
{
    A guard{42}; // OK.
}

另請參閱

C26441
ES.84:不要 (嘗試) 宣告沒有名稱的局部變數