Skip to content
  • Martin Heistermann's avatar
    Fix lifetime issues for Face::halfedges(), Cell::halffaces(). · ec489971
    Martin Heistermann authored
    Currently, the following API-usage is straight-forward and clean but
    unfortunately wrong and dangerous:
    
    `for (const auto heh: mesh.face(fh).halfedges()) { ... }`
    
    This is because the temporary `Face` returned by `face()` reaches the
    end of its lifetime, but `halfedges()` returned a reference to a vector that
    lives inside that object. Reference lifetime extension does not apply
    here.
    
    This change splits behaviour so that in rvalue context (such as
    temporaries), we move out the vector instead of returning a reference to
    it.
    ec489971