Когда я создаю объект и добавляю его в список
auto o = new object;
m_objects.push_back(o);
, я получаю несколько подсказок от компилятора о том, что мне следует очистить свой код в соответствии с рекомендациями C ++ Core Check, в том числе
- не использовать
new
и delete
напрямую, использовать unique_ptr
(предупреждение VC ++ C26409) - сбросить или явно
delete
указатель owner<T>
(предупреждение VC ++ 26403)
Последнее меня заинтриговало: как мне «сбросить» этот указатель, чтобы компилятор не предупреждал меня здесь, учитывая, что я передал право собственности на list
? Назначение nullptr
дает мне дополнительное предупреждение
- не назначайте
owner<T>
, который может находиться в допустимом состоянии (VC ++ предупреждение 26405)
и не ' разобраться с первоначальной жалобой, так что это не так.