共用方式為


警告 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