ライブラリのカスタムイテレータを実装していて、演算子++と-をオーバーロードしています。これらのプレフィックス演算子は完全に機能しますが、ポスト演算子はメモリリークを引き起こします。
avl_iterator& operator++()
{
_node = utilities::next_node( _node );
return (*this);
}
avl_iterator& operator ++( int ) {
avl_iterator temp(*this);
++(*this);
return(temp);
}
avl_iterator& operator -- () {
_node = utilities::prev_node( _node );
return (*this);
}
avl_iterator& operator -- ( int ) {
avl_iterator temp(*this);
--(*this);
return(temp);
}
これは一時変数を返しているためだと思いますが、これを行うためのより良い方法を考える(または見つける)ことができないようです。