- 1
- 2
- 3
std::auto_ptr<ItemDesc> desc(new ItemDesc());
...
m_items.insert(desc->m_item->m_name, desc.release());
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+161
std::auto_ptr<ItemDesc> desc(new ItemDesc());
...
m_items.insert(desc->m_item->m_name, desc.release());
Да, я тоже говнокодер. А ведь предупреждали...
Правда хотелось бы узнать, что за тип у m_items.
Kirinyale ниже объяснил, в чём на самом деле говнокод.
Пришлось долго и вдумчиво ловить крэш на релизе из-за того, что после оптимизаций release() выполнялся раньше, а при вычислении первого аргумента шло обращение уже к нулевому указателю.
desc->m_item->m_name следовало бы выделить в отдельную переменную.
Мейерс о такой хрени писал. А я читал. Но забыл.