警告 C26405
请勿分配给可能处于有效状态的
owner<T>
(r.3)
注解
如果所有者指针已指向有效的内存缓冲区,则不得在未释放其当前资源的情况下为其赋予其他的值。 即使将资源地址复制到某些原始指针(原始指针应不会释放资源),这种分配依然可能导致资源泄漏。 有关详细信息,请参阅 C++ Core Guidelines。
代码分析名称:DONT_ASSIGN_TO_VALID
示例 1
覆盖循环中的所有者:
gsl::owner<Shape*> shape = nullptr;
while (shape = NextShape()) // C26405
Process(shape) ? delete shape : 0;