neighbor_view_iterator& operator++() { ++view_.partner_index(); // Because view_.partner_last_index() have to access neighbor_list, one has to check its validity while (view_.source()+1 < view_.partner_first_indices_size() and view_.partner_index() >= view_.partner_last_index()) ++view_.source(); return *this; }