警告 C26444
請勿嘗試宣告沒有名稱的局部變數 (es.84)。
C++ Core Guidelines
未命名的變數宣告會建立在語句結尾捨棄的暫存物件。 具有非特殊行為的這類暫存物件可能會指向配置並立即擲回資源的效率不佳程序代碼,或是無意中忽略非特殊數據的程序代碼。 有時也可能表示宣告錯誤。
備註
- 此規則會偵測具有手動寫入解構函式或編譯程式產生的解構函式,以可轉移方式呼叫手寫解構函式的類型。
- 此規則可以標幟程序代碼,以叫用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.
}
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應