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