Fixed return type of operators of Construct_{min,max}_vertex_2

This commit is contained in:
Efi Fogel 2024-09-16 19:51:30 +03:00
parent 8644a3d483
commit 2b5b7cea00
2 changed files with 18 additions and 6 deletions

View File

@ -173,8 +173,11 @@ public:
m_object(base.construct_min_vertex_2_object()), m_counter(counter) {}
/*! Operate */
const Point_2 operator()(const X_monotone_curve_2& xc) const
{ ++m_counter; return m_object(xc); }
using Subcurve_ctr_minv = typename Base::Construct_min_vertex_2;
decltype(std::declval<Subcurve_ctr_minv>().
operator()(std::declval<X_monotone_curve_2>()))
operator()(const X_monotone_curve_2& xcv) const
{ ++m_counter; return m_object(xcv); }
};
/*! A functor that obtains the right endpoint of an \f$x\f$-monotone curve. */
@ -189,8 +192,11 @@ public:
m_object(base.construct_max_vertex_2_object()), m_counter(counter) {}
/*! Operate */
const Point_2 operator()(const X_monotone_curve_2& xc) const
{ ++m_counter; return m_object(xc); }
using Subcurve_ctr_maxv = typename Base::Construct_max_vertex_2;
decltype(std::declval<Subcurve_ctr_maxv>().
operator()(std::declval<X_monotone_curve_2>()))
operator()(const X_monotone_curve_2& xcv) const
{ ++m_counter; return m_object(xcv); }
};
/*! A functor that checks whether a given \f$x\f$-monotone curve is vertical. */

View File

@ -283,7 +283,10 @@ public:
* \param xcv the curve the left endpoint of which is obtained
* \return the left endpoint
*/
const Point_2 operator()(const X_monotone_curve_2& xcv) const {
using Subcurve_ctr_minv = typename Base::Construct_min_vertex_2;
decltype(std::declval<Subcurve_ctr_minv>().
operator()(std::declval<X_monotone_curve_2>()))
operator()(const X_monotone_curve_2& xcv) const {
if (! m_enabled) return m_object(xcv);
std::cout << "construct_min_vertex" << std::endl
<< " xcv: " << xcv << std::endl;
@ -308,7 +311,10 @@ public:
* \param xcv the curve the right endpoint of which is obtained
* \return the right endpoint
*/
const Point_2 operator()(const X_monotone_curve_2& xcv) const {
using Subcurve_ctr_maxv = typename Base::Construct_max_vertex_2;
decltype(std::declval<Subcurve_ctr_maxv>().
operator()(std::declval<X_monotone_curve_2>()))
operator()(const X_monotone_curve_2& xcv) const {
if (! m_enabled) return m_object(xcv);
std::cout << "construct_max_vertex" << std::endl
<< " xcv: " << xcv << std::endl;