------- Comment #4 from chtz at informatik dot uni-bremen dot de  2010-07-06 
22:06 -------
I found two possible work-arounds:

either replace:
>  template<class X>
>  void remove(D<X>* t){
>   A_list::iterator it = A_list::s_iterator_to(*t);
>   a.erase_and_dispose(it, delete_disposer<A>);
>  }

by:
        template<class X>
        void remove(D<X>* t){
                A_list::iterator it = A_list::s_iterator_to(*t), it2 = it;
                ++it2;
                a.erase_and_dispose(it, it2, delete_disposer<A>);
        }

Or, what also works, is replacing delete_disposer<A> by a non-template version:
        void delete_A(A* a){ delete a; }


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44827

Reply via email to