基本操作をstd :: mapに追加するクラスを作っていますが、を呼び出すと、マップから項目を削除した後に自動的に呼び出されます。しかし、2番目の値(T2)がポインタでない場合、これは実行できません。確認する方法はありますか?値がポインタの場合にのみ呼び出す
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