The iterator could be set to m_surgeon.indexEnd() in the contructor. What will ++m_iter do if it's already at the end?