警告 C26404
請勿刪除
owner<T>
可能處於無效狀態的 (r.3)
備註
一旦擁有者指標釋放或傳輸其資源,它就會進入「無效」狀態。 刪除這類指標可能會導致立即記憶體損毀,因為雙重刪除,或從另一個擁有者指標存取已刪除的資源時發生存取違規。
程式碼分析名稱: DONT_DELETE_INVALID
範例 1
在轉移其值之後刪除擁有者:
gsl::owner<State*> validState = nullptr;
gsl::owner<State*> state = ReadState();
validState = state;
if (!IsValid(state))
delete state; // C26404
範例 2
刪除未初始化的擁有者:
gsl::owner<Message*> message;
if (popLast)
message = ReleaseMessage();
delete message; // C26404