one more specialization + fix invalid usage

This commit is contained in:
Sébastien Loriot 2023-07-17 10:13:00 +02:00
parent e46196d362
commit ceded5c3ef
2 changed files with 18 additions and 17 deletions

View File

@ -924,9 +924,9 @@ int main()
{ {
CGAL::Set_ieee_double_precision pfr; CGAL::Set_ieee_double_precision pfr;
Test< CGAL::Simple_cartesian<CGAL::internal::Exact_field_selector<void*>::Type > >().run(); Test< CGAL::Simple_cartesian<CGAL::internal::Exact_field_selector<double>::Type > >().run();
Test< CGAL::Cartesian<double> >().run(); Test< CGAL::Cartesian<double> >().run();
Test< CGAL::Homogeneous<CGAL::internal::Exact_field_selector<void*>::Type > >().run(); Test< CGAL::Homogeneous<CGAL::internal::Exact_field_selector<double>::Type > >().run();
Test< CGAL::Exact_predicates_inexact_constructions_kernel >().run(); Test< CGAL::Exact_predicates_inexact_constructions_kernel >().run();
Test< CGAL::Exact_predicates_exact_constructions_kernel >().run(); Test< CGAL::Exact_predicates_exact_constructions_kernel >().run();
} }

View File

@ -162,23 +162,22 @@ struct Exact_field_selector;
template < typename > template < typename >
struct Exact_ring_selector; struct Exact_ring_selector;
template <> #define CGAL_EXACT_SELECTORS_SPECS(X) \
struct Exact_ring_selector<double> template <> \
{ struct Exact_ring_selector<X> \
using Type = typename Exact_NT_backend<Default_exact_nt_backend>::Ring_for_float; { \
using Type = typename Exact_NT_backend<Default_exact_nt_backend>::Ring_for_float; \
}; \
\
template <> \
struct Exact_field_selector<X> \
{ \
using Type = typename Exact_NT_backend<Default_exact_nt_backend>::Rational; \
}; };
template <> CGAL_EXACT_SELECTORS_SPECS(double)
struct Exact_field_selector<double> CGAL_EXACT_SELECTORS_SPECS(float)
{ CGAL_EXACT_SELECTORS_SPECS(int)
using Type = typename Exact_NT_backend<Default_exact_nt_backend>::Rational;
};
template <>
struct Exact_ring_selector<float> : Exact_ring_selector<double> { };
template <>
struct Exact_field_selector<float> : Exact_field_selector<double> { };
template <> template <>
struct Exact_field_selector<MP_Float> struct Exact_field_selector<MP_Float>
@ -330,4 +329,6 @@ struct Exact_type_selector : Exact_field_selector< ET > {};
} } // namespace CGAL::internal } } // namespace CGAL::internal
#undef CGAL_EXACT_SELECTORS_SPECS
#endif // CGAL_INTERNAL_EXACT_TYPE_SELECTOR_H #endif // CGAL_INTERNAL_EXACT_TYPE_SELECTOR_H