Replace typedefs Exact_predicates_[in]exact_constrictions_kernel by Epick and

Epeck to shorten error messages, mangling...
This commit is contained in:
Sylvain Pion 2010-07-27 14:16:39 +00:00
parent 8bd594a8be
commit 8bd3dce0e2
2 changed files with 56 additions and 11 deletions

View File

@ -41,27 +41,60 @@
namespace CGAL {
// The following are redefined kernels instead of simple typedefs in order to shorten
// template name length (for error messages, mangling...).
#ifdef CGAL_DONT_USE_LAZY_KERNEL
#ifdef CGAL_USE_GMP
typedef Filtered_kernel<Simple_cartesian<Lazy_exact_nt<Gmpq > > >
Exact_predicates_exact_constructions_kernel;
// Equivalent to Filtered_kernel<Simple_cartesian<Lazy_exact_nt<Gmpq> > >
class Epeck
: public Filtered_kernel_adaptor<
Type_equality_wrapper< Simple_cartesian<Lazy_exact_nt<Gmpq> >::Base<Epeck>::Type, Epeck >,
#ifdef CGAL_NO_STATIC_FILTERS
false >
#else
typedef Filtered_kernel<Simple_cartesian<Lazy_exact_nt<Quotient<MP_Float> > > >
Exact_predicates_exact_constructions_kernel;
true >
#endif
{};
#else
// Equivalent to Filtered_kernel<Simple_cartesian<Lazy_exact_nt<Quotient<MP_Float> > > >
class Epeck
: public Filtered_kernel_adaptor<
Type_equality_wrapper< Simple_cartesian<Lazy_exact_nt<Quotient<MP_Float> > >::Base<Epeck>::Type, Epeck >,
#ifdef CGAL_NO_STATIC_FILTERS
false >
#else
true >
#endif
{};
#endif
#else // CGAL_DONT_USE_LAZY_KERNEL
#ifdef CGAL_USE_GMP
typedef Lazy_kernel<Simple_cartesian<Gmpq> >
Exact_predicates_exact_constructions_kernel;
// Equivalent to Lazy_kernel<Simple_cartesian<Gmpq> >
class Epeck
: public Type_equality_wrapper<
Lazy_kernel_base< Simple_cartesian<Gmpq>, Simple_cartesian<Interval_nt_advanced>,
Cartesian_converter< Simple_cartesian<Gmpq>, Simple_cartesian<Interval_nt_advanced> >, Epeck>,
Epeck >
{};
#else
typedef Lazy_kernel<Simple_cartesian<Quotient<MP_Float> > >
Exact_predicates_exact_constructions_kernel;
// Equivalent to Lazy_kernel<Simple_cartesian<Quotient<MP_Float> > >
class Epeck
: public Type_equality_wrapper<
Lazy_kernel_base< Simple_cartesian<Quotient<MP_Float> >, Simple_cartesian<Interval_nt_advanced>,
Cartesian_converter< Simple_cartesian<Quotient<MP_Float> >, Simple_cartesian<Interval_nt_advanced> >, Epeck>,
Epeck >
{};
#endif
#endif
#endif // CGAL_DONT_USE_LAZY_KERNEL
typedef Epeck Exact_predicates_exact_constructions_kernel;
} //namespace CGAL

View File

@ -29,8 +29,20 @@
namespace CGAL {
typedef Filtered_kernel< Simple_cartesian<double> >
Exact_predicates_inexact_constructions_kernel;
// The following is equivalent to Filtered_kernel< Simple_cartesian<double> >,
// but it's shorter in terms of template name length (for error messages, mangling...).
class Epick
: public Filtered_kernel_adaptor<
Type_equality_wrapper< Simple_cartesian<double>::Base<Epick>::Type, Epick >,
#ifdef CGAL_NO_STATIC_FILTERS
false >
#else
true >
#endif
{};
typedef Epick Exact_predicates_inexact_constructions_kernel;
} //namespace CGAL