void HogeManager::Update(float elapsed)
{
if( m_listHoge.empty()) return;

list<Hoge*>::iterator itr = m_listHoge.begin();
while(itr != m_listHoge.end())
{
(*itr)->Update(elapsed);
if((*itr)->IsExpired() == true)
{
delete *itr;
*itr = NULL;
itr = m_listHoge.erase(itr);//消すときは次のiteratorを取って置く
}
if(m_listHoge.empty())break;
++itr;
}
}

なんかstlのlist使ったら
list iterator not inclementableとかいうエラーがでます。
以前同じような質問をしたときに
listのiteratorはeraseした後無効になるから、戻り値をとっておけといわれて
これで直ったような気がしてたんですが、やっぱエラーがでました。
listを消したりインクリメントしたりする操作はこの関数内でしか行ってません。
iteratorの使い方とか間違ってるでしょうか?