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;
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::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_exact_constructions_kernel >().run();
}

View File

@ -162,23 +162,22 @@ struct Exact_field_selector;
template < typename >
struct Exact_ring_selector;
template <>
struct Exact_ring_selector<double>
{
using Type = typename Exact_NT_backend<Default_exact_nt_backend>::Ring_for_float;
#define CGAL_EXACT_SELECTORS_SPECS(X) \
template <> \
struct Exact_ring_selector<X> \
{ \
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 <>
struct Exact_field_selector<double>
{
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> { };
CGAL_EXACT_SELECTORS_SPECS(double)
CGAL_EXACT_SELECTORS_SPECS(float)
CGAL_EXACT_SELECTORS_SPECS(int)
template <>
struct Exact_field_selector<MP_Float>
@ -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