Предупреждение C26405
Не назначайте допустимому
owner<T>
состоянию (r.3)
Замечания
Если указатель владельца уже указывает на допустимый буфер памяти, он не должен быть назначен другому значению, не освобождая текущий ресурс первым. Такое назначение может привести к утечке ресурсов, даже если адрес ресурса копируется в какой-то необработанный указатель (так как необработанные указатели не должны выпускать ресурсы). Дополнительные сведения см. в основных рекомендациях по C++ .
Имя анализа кода: DONT_ASSIGN_TO_VALID
Пример 1
Перезапись владельца в цикле:
gsl::owner<Shape*> shape = nullptr;
while (shape = NextShape()) // C26405
Process(shape) ? delete shape : 0;