From ceded5c3efba1f00eb94aa855eaf9fb524548f89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Loriot?= Date: Mon, 17 Jul 2023 10:13:00 +0200 Subject: [PATCH] one more specialization + fix invalid usage --- .../Intersections_2/test_intersections_2.cpp | 4 +-- .../internal/Exact_type_selector.h | 31 ++++++++++--------- 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/Intersections_2/test/Intersections_2/test_intersections_2.cpp b/Intersections_2/test/Intersections_2/test_intersections_2.cpp index 5c15555404a..dad2d129c15 100644 --- a/Intersections_2/test/Intersections_2/test_intersections_2.cpp +++ b/Intersections_2/test/Intersections_2/test_intersections_2.cpp @@ -924,9 +924,9 @@ int main() { CGAL::Set_ieee_double_precision pfr; - Test< CGAL::Simple_cartesian::Type > >().run(); + Test< CGAL::Simple_cartesian::Type > >().run(); Test< CGAL::Cartesian >().run(); - Test< CGAL::Homogeneous::Type > >().run(); + Test< CGAL::Homogeneous::Type > >().run(); Test< CGAL::Exact_predicates_inexact_constructions_kernel >().run(); Test< CGAL::Exact_predicates_exact_constructions_kernel >().run(); } diff --git a/Number_types/include/CGAL/Number_types/internal/Exact_type_selector.h b/Number_types/include/CGAL/Number_types/internal/Exact_type_selector.h index b84faead6d8..4ba51139e9d 100644 --- a/Number_types/include/CGAL/Number_types/internal/Exact_type_selector.h +++ b/Number_types/include/CGAL/Number_types/internal/Exact_type_selector.h @@ -162,23 +162,22 @@ struct Exact_field_selector; template < typename > struct Exact_ring_selector; -template <> -struct Exact_ring_selector -{ - using Type = typename Exact_NT_backend::Ring_for_float; +#define CGAL_EXACT_SELECTORS_SPECS(X) \ +template <> \ +struct Exact_ring_selector \ +{ \ + using Type = typename Exact_NT_backend::Ring_for_float; \ +}; \ +\ +template <> \ +struct Exact_field_selector \ +{ \ + using Type = typename Exact_NT_backend::Rational; \ }; -template <> -struct Exact_field_selector -{ - using Type = typename Exact_NT_backend::Rational; -}; - -template <> -struct Exact_ring_selector : Exact_ring_selector { }; - -template <> -struct Exact_field_selector : Exact_field_selector { }; +CGAL_EXACT_SELECTORS_SPECS(double) +CGAL_EXACT_SELECTORS_SPECS(float) +CGAL_EXACT_SELECTORS_SPECS(int) template <> struct Exact_field_selector @@ -330,4 +329,6 @@ struct Exact_type_selector : Exact_field_selector< ET > {}; } } // namespace CGAL::internal +#undef CGAL_EXACT_SELECTORS_SPECS + #endif // CGAL_INTERNAL_EXACT_TYPE_SELECTOR_H