for (list<int>::const_reverse_iterator it = a.rbegin(); it != a.rend(); ++it)
VC++ 9.0 なら普通に動く。gcc だとコンパイルエラー。
error:no match for 'operator!=' in 'it != ((std::list
>*)a)->std::list<_Tp, _Alloc>::end [with _Tp = int, _Alloc = std::allocator ]()'
どうなってんだこれ‥‥
つか、未だに reverse_iterator がよくわかってない事に気づいた。reverse_iterator から iterator にするときは ri.base() とか (++ri).base() でいいとして、iterator から reverse_iterator ってできないんだっけ? とか。reverse_iterator で erase の戻り値欲しいときとかどうすりゃいいんだ。