
"Peter Foelsche" <foelsche@sbcglobal.net> wrote in message news:iv8fap$5ju$1@dough.gmane.org... something was missing:
std::list<object*> sort(std::list<object*> _sList) { std::set<object*> sSet; std::list<object*> sSorted; while (_sList.size()) for (std::list<object*>::iterator p = _sList.begin(), pNext = p, pEnd = _sList.end(); p != pEnd; p = pNext) { ++pNext; bool bFound = false; for (std::set<object*>::const_iterator p1 = (*p)->m_sPredecessors.begin(), p1End = (*p)->m_sPredecessors.end(); p1 != p1End; ++p1) if (sSet.find(*p1) == sSet.end()) { bFound = true; break; } if (!bFound) { sSorted.push_back(*p); sSet.insert(*p); _sList.erase(p); } } return sSorted; }