void TournamentReducer::MultipleWithPos::destroy(const PolyRing& ring) { ring.freeMonomial(current); ring.freeMonomial(const_cast<ConstMonomial&>(multiple.monom).castAwayConst()); // Call the destructor to destruct the iterators into std::vector. // In debug mode MSVC puts those in a linked list and the destructor // has to be called since it takes an iterator off the list. We had // memory corruption problems before doing this. this->~MultipleWithPos(); }