Я делаю класс, который добавляет некоторые основные операции в std :: map, и я хотел бы автоматически вызвать удалить после удаления элемента с карты. Но если второе (T2) значение не является указателем, это невозможно. Есть ли способ проверить?Вызов delete только в том случае, если значение является указателем
template <class T,class T2>
bool CExtendedMap<T,T2>::remove(T ID)
{
if(theMap.find(ID)!=theMap.end())
{
T2 second = theMap.find(ID)->second;
theMap.erase(theMap.find(ID));
//delete second; //Had to comment it out now.
return true;
}
return false;
}
Пожалуйста, используйте ссылку, поскольку материал для копирования может быть дорогим *, особенно * если вы ничего не с этим справляетесь. – Xeo
@Xeo исправлено, сообщение отредактировано. –
Не могу поверить, что я не думал об этом сам .. как глупо! – natli