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