Fixed the 'other' type nested in the rebind struct

This commit is contained in:
Efi Fogel 2024-01-30 11:12:49 +02:00
parent 83be94646e
commit 09761aa0c3
1 changed files with 13 additions and 2 deletions

View File

@ -498,6 +498,8 @@ class Envelope_pm_dcel :
Envelope_pm_face<FaceBase, DcelData>> {
public:
using Dcel_data = DcelData;
using Vertex_base = VertexBase;
using Halfedge_base = HalfedgeBase;
using Face_base = FaceBase;
using Face_data = Dcel_data;
@ -521,7 +523,16 @@ public:
* An auxiliary structure for rebinding the DCEL with a new traits class.
*/
template <typename T>
struct rebind { typedef Envelope_pm_dcel<T, Face_data> other; };
struct rebind {
using Pnt = typename T::Point_2;
using Xcv = typename T::X_monotone_curve_2;
using Rebind_v = typename Vertex_base::template rebind<Pnt>;
using V_other = typename Rebind_v::other;
using Rebind_h = typename Halfedge_base::template rebind<Xcv>;
using H_other = typename Rebind_h::other;
typedef Envelope_pm_dcel<T, Dcel_data, V_other, H_other, Face_base> other;
};
/*! Constructor */
Envelope_pm_dcel() {}