boost::integral_constant ---> std::integral_constant

This commit is contained in:
Sébastien Loriot 2023-04-29 09:22:12 +02:00
parent 769fca3597
commit c1294a0eaa
32 changed files with 109 additions and 109 deletions

View File

@ -65,7 +65,7 @@ namespace internal {
template<typename Comparable,bool has_template_typedefs> template<typename Comparable,bool has_template_typedefs>
struct Is_derived_from_Handle_with_policy { struct Is_derived_from_Handle_with_policy {
typedef boost::false_type Tag; typedef std::false_type Tag;
}; };
template<typename Comparable> template<typename Comparable>
@ -89,7 +89,7 @@ template<typename Comparable,typename Tag> struct Compare_for_vert_line_map_
}; };
template<typename Comparable> template<typename Comparable>
struct Compare_for_vert_line_map_<Comparable,boost::true_type> { struct Compare_for_vert_line_map_<Comparable,std::true_type> {
bool operator() (const Comparable& a, const Comparable& b) const { bool operator() (const Comparable& a, const Comparable& b) const {
return CGAL::Handle_id_less_than< Comparable >()(a,b); return CGAL::Handle_id_less_than< Comparable >()(a,b);

View File

@ -71,7 +71,7 @@ public:
typedef Tag_true Has_left_category; typedef Tag_true Has_left_category;
typedef Tag_true Has_merge_category; typedef Tag_true Has_merge_category;
typedef Tag_false Has_do_intersect_category; typedef Tag_false Has_do_intersect_category;
//typedef boost::true_type Has_line_segment_constructor; //typedef std::true_type Has_line_segment_constructor;
typedef Arr_oblivious_side_tag Left_side_category; typedef Arr_oblivious_side_tag Left_side_category;
typedef Arr_oblivious_side_tag Bottom_side_category; typedef Arr_oblivious_side_tag Bottom_side_category;

View File

@ -65,7 +65,7 @@ public:
typedef Arr_contracted_side_tag Top_side_category; typedef Arr_contracted_side_tag Top_side_category;
typedef Arr_identified_side_tag Right_side_category; typedef Arr_identified_side_tag Right_side_category;
typedef boost::integral_constant<bool, atan_y==0> Zero_atan_y; typedef std::integral_constant<bool, atan_y==0> Zero_atan_y;
// Traits objects // Traits objects
typedef Arr_extended_direction_3<Kernel> Point_2; typedef Arr_extended_direction_3<Kernel> Point_2;
@ -357,7 +357,7 @@ public:
*/ */
void intersection_with_identification(const X_monotone_curve_2& xcv, void intersection_with_identification(const X_monotone_curve_2& xcv,
Direction_3& dp, Direction_3& dp,
boost::true_type) const std::true_type) const
{ {
const Direction_3& normal = xcv.normal(); const Direction_3& normal = xcv.normal();
dp = (CGAL::sign(normal.dz()) == POSITIVE) ? dp = (CGAL::sign(normal.dz()) == POSITIVE) ?
@ -370,7 +370,7 @@ public:
*/ */
void intersection_with_identification(const X_monotone_curve_2& xcv, void intersection_with_identification(const X_monotone_curve_2& xcv,
Direction_3& dp, Direction_3& dp,
boost::false_type) const std::false_type) const
{ {
const Direction_3& normal = xcv.normal(); const Direction_3& normal = xcv.normal();
FT z((atan_x * normal.dx() + atan_y * normal.dy()) / FT z((atan_x * normal.dx() + atan_y * normal.dy()) /
@ -382,7 +382,7 @@ public:
* \param[in] cv the curve * \param[in] cv the curve
*/ */
bool overlap_with_identification(const X_monotone_curve_2& xcv, bool overlap_with_identification(const X_monotone_curve_2& xcv,
boost::true_type) const std::true_type) const
{ {
const Direction_3& normal = xcv.normal(); const Direction_3& normal = xcv.normal();
return ((x_sign(normal) == ZERO) && return ((x_sign(normal) == ZERO) &&
@ -394,7 +394,7 @@ public:
* \param[in] cv the curve * \param[in] cv the curve
*/ */
bool overlap_with_identification(const X_monotone_curve_2& xcv, bool overlap_with_identification(const X_monotone_curve_2& xcv,
boost::false_type) const std::false_type) const
{ {
const Direction_3& normal = xcv.normal(); const Direction_3& normal = xcv.normal();
const Direction_3& iden_normal = identification_normal(); const Direction_3& iden_normal = identification_normal();
@ -440,7 +440,7 @@ public:
Point_2 p; Point_2 p;
Direction_3& d(p); Direction_3& d(p);
d = Direction_3(x, y, z); d = Direction_3(x, y, z);
init(p, boost::integral_constant<bool, atan_y==0>()); init(p, std::integral_constant<bool, atan_y==0>());
return p; return p;
} }
@ -453,14 +453,14 @@ public:
Point_2 p; Point_2 p;
Direction_3& d(p); Direction_3& d(p);
d = Direction_3(other); d = Direction_3(other);
init(p, boost::integral_constant<bool, atan_y==0>()); init(p, std::integral_constant<bool, atan_y==0>());
return p; return p;
} }
/*! Initialize a point on the sphere, /*! Initialize a point on the sphere,
* \param[in] p the point to initialize. * \param[in] p the point to initialize.
*/ */
void init(Point_2& p, boost::true_type) const void init(Point_2& p, std::true_type) const
{ {
const Direction_3& dir = p; const Direction_3& dir = p;
if (y_sign(dir) != ZERO) { if (y_sign(dir) != ZERO) {
@ -479,7 +479,7 @@ public:
/*! Initialize a point on the sphere, /*! Initialize a point on the sphere,
* \param[in] p the point to initialize. * \param[in] p the point to initialize.
*/ */
void init(Point_2& p, boost::false_type) const void init(Point_2& p, std::false_type) const
{ {
const Direction_3& dir = p; const Direction_3& dir = p;
if ((x_sign(dir) == ZERO) && (y_sign(dir) == ZERO)) { if ((x_sign(dir) == ZERO) && (y_sign(dir) == ZERO)) {

View File

@ -61,7 +61,7 @@ namespace Ss2 = Surface_sweep_2;
// The last parameter is used to resolve ambiguity between this function and // The last parameter is used to resolve ambiguity between this function and
// do_intersect of X_monotone_curve_2 in case that X_monotone_curve_2 and // do_intersect of X_monotone_curve_2 in case that X_monotone_curve_2 and
// Curve_2 are the same class. // Curve_2 are the same class.
// The last parameter should be boost::false_type but we used a // The last parameter should be std::false_type but we used a
// workaround since it didn't compile in FC3_g++-3.4.4 with the error of: // workaround since it didn't compile in FC3_g++-3.4.4 with the error of:
// //
// error: no matching function for call to `do_intersect(Arrangement_2<>&, // error: no matching function for call to `do_intersect(Arrangement_2<>&,
@ -132,7 +132,7 @@ void insert(Arrangement_on_surface_2<GeometryTraits_2, TopologyTraits>& arr,
// //
// The last parameter is used to resolve ambiguity between this function and // The last parameter is used to resolve ambiguity between this function and
// do_intersect of Curve_2 in case that X_monotone_curve_2 and Curve_2 are the // do_intersect of Curve_2 in case that X_monotone_curve_2 and Curve_2 are the
// same class. The last parameter should be boost::true_type but we used a // same class. The last parameter should be std::true_type but we used a
// workaround since it didn't compile in FC3_g++-3.4.4 with the error of: // workaround since it didn't compile in FC3_g++-3.4.4 with the error of:
// //
// error: no matching function for call to `do_intersect(Arrangement_2<>&, // error: no matching function for call to `do_intersect(Arrangement_2<>&,
@ -406,7 +406,7 @@ void insert_non_empty(Arrangement_on_surface_2<GeometryTraits_2,
// The last parameter is used to resolve ambiguity between this function and // The last parameter is used to resolve ambiguity between this function and
// do_intersect of X_monotone_curve_2 in case that X_monotone_curve_2 and // do_intersect of X_monotone_curve_2 in case that X_monotone_curve_2 and
// Curve_2 are the same class. // Curve_2 are the same class.
// The last parameter should be boost::false_type but we used a // The last parameter should be std::false_type but we used a
// workaround since it didn't compile in FC3_g++-3.4.4 with the error of: // workaround since it didn't compile in FC3_g++-3.4.4 with the error of:
// //
// error: no matching function for call to `do_intersect(Arrangement_2<>&, // error: no matching function for call to `do_intersect(Arrangement_2<>&,
@ -460,7 +460,7 @@ void insert(Arrangement_on_surface_2<GeometryTraits_2, TopologyTraits>& arr,
// //
// The last parameter is used to resolve ambiguity between this function and // The last parameter is used to resolve ambiguity between this function and
// insert of Curve_2 in case that X_monotone_curve_2 and Curve_2 are the // insert of Curve_2 in case that X_monotone_curve_2 and Curve_2 are the
// same class. The last parameter should be boost::true_type but we used a // same class. The last parameter should be std::true_type but we used a
// workaround since it didn't compile in FC3_g++-3.4.4 with the error of: // workaround since it didn't compile in FC3_g++-3.4.4 with the error of:
// //
// error: no matching function for call to `do_intersect(Arrangement_2<>&, // error: no matching function for call to `do_intersect(Arrangement_2<>&,
@ -1522,7 +1522,7 @@ zone(Arrangement_on_surface_2<GeometryTraits_2, TopologyTraits>& arr,
// Checks whether the given x-monotone curve intersects the existing arrangement. // Checks whether the given x-monotone curve intersects the existing arrangement.
// The last parameter is used to resolve ambiguity between this function and // The last parameter is used to resolve ambiguity between this function and
// do_intersect of Curve_2 in case that X_monotone_curve_2 and Curve_2 are the // do_intersect of Curve_2 in case that X_monotone_curve_2 and Curve_2 are the
// same class. The last parameter should be boost::true_type but we used a // same class. The last parameter should be std::true_type but we used a
// workaround since it didn't compile in FC3_g++-3.4.4 with the error of: // workaround since it didn't compile in FC3_g++-3.4.4 with the error of:
// //
// error: no matching function for call to `do_intersect(Arrangement_on_surface_2<>&, // error: no matching function for call to `do_intersect(Arrangement_on_surface_2<>&,
@ -1559,7 +1559,7 @@ do_intersect(Arrangement_on_surface_2<GeometryTraits_2, TopologyTraits>& arr,
// The last parameter is used to resolve ambiguity between this function and // The last parameter is used to resolve ambiguity between this function and
// do_intersect of X_monotone_curve_2 in case that X_monotone_curve_2 and // do_intersect of X_monotone_curve_2 in case that X_monotone_curve_2 and
// Curve_2 are the same class. // Curve_2 are the same class.
// The last parameter should be boost::false_type but we used a // The last parameter should be std::false_type but we used a
// workaround since it didn't compile in FC3_g++-3.4.4 with the error of: // workaround since it didn't compile in FC3_g++-3.4.4 with the error of:
// //
// error: no matching function for call to // error: no matching function for call to

View File

@ -24,7 +24,7 @@
#include <CGAL/license/Arrangement_on_surface_2.h> #include <CGAL/license/Arrangement_on_surface_2.h>
#include <boost/type_traits/integral_constant.hpp> #include <type_traits>
namespace CGAL namespace CGAL
{ {
@ -62,7 +62,7 @@ namespace CGAL
// In the meanwhile we use a default implementation. // In the meanwhile we use a default implementation.
template <class T> template <class T>
class is_arrangement_2 : public boost::false_type class is_arrangement_2 : public std::false_type
{}; {};
//-------------------------------- Arrangement_2 //-------------------------------- Arrangement_2
@ -74,7 +74,7 @@ class Arrangement_2;
template <class GeomTraits_, class DCEL_> template <class GeomTraits_, class DCEL_>
class is_arrangement_2< class is_arrangement_2<
Arrangement_2<GeomTraits_, DCEL_> Arrangement_2<GeomTraits_, DCEL_>
> : public boost::false_type > : public std::false_type
{}; {};
@ -87,7 +87,7 @@ class Arrangement_on_surface_2;
template <class GeomTraits_, class TopTraits_> template <class GeomTraits_, class TopTraits_>
class is_arrangement_2< class is_arrangement_2<
Arrangement_on_surface_2<GeomTraits_, TopTraits_> Arrangement_on_surface_2<GeomTraits_, TopTraits_>
> : public boost::true_type > : public std::true_type
{}; {};
} // namespace CGAL } // namespace CGAL

View File

@ -267,7 +267,7 @@ private:
try{ try{
this->start(); this->start();
insert(_pm,ac.begin(),ac.end(),boost::false_type()); insert(_pm,ac.begin(),ac.end(),std::false_type());
this->stop(); this->stop();
} }
catch (...) { catch (...) {

View File

@ -214,7 +214,7 @@ class Bench
try{ try{
this->start(); this->start();
insert(_pm,ac.begin(),ac.end(),boost::false_type()); insert(_pm,ac.begin(),ac.end(),std::false_type());
this->stop(); this->stop();
} }

View File

@ -219,7 +219,7 @@ private:
Point_location _pl(_pm); Point_location _pl(_pm);
try{ try{
this->start(); this->start();
insert(_pm,ac.begin(),ac.end(),boost::false_type()); insert(_pm,ac.begin(),ac.end(),std::false_type());
this->stop(); this->stop();
} catch (std::exception &e) { } catch (std::exception &e) {
this->fail(); this->fail();

View File

@ -87,7 +87,7 @@ void do_main(const char *s) {
struct rusage before, after; struct rusage before, after;
struct timeval utime, stime; struct timeval utime, stime;
getrusage(RUSAGE_SELF,&before); getrusage(RUSAGE_SELF,&before);
insert(_pm,ac.begin(),ac.end(),boost::false_type()); insert(_pm,ac.begin(),ac.end(),std::false_type());
getrusage(RUSAGE_SELF,&after); getrusage(RUSAGE_SELF,&after);
timersub(&(after.ru_utime),&(before.ru_utime),&utime); timersub(&(after.ru_utime),&(before.ru_utime),&utime);
timersub(&(after.ru_stime),&(before.ru_stime),&stime); timersub(&(after.ru_stime),&(before.ru_stime),&stime);
@ -177,7 +177,7 @@ void do_main(int k) {
struct rusage before, after; struct rusage before, after;
struct timeval utime, stime; struct timeval utime, stime;
getrusage(RUSAGE_SELF,&before); getrusage(RUSAGE_SELF,&before);
insert(_pm,ac.begin(),ac.end(),boost::false_type()); insert(_pm,ac.begin(),ac.end(),std::false_type());
getrusage(RUSAGE_SELF,&after); getrusage(RUSAGE_SELF,&after);
timersub(&(after.ru_utime),&(before.ru_utime),&utime); timersub(&(after.ru_utime),&(before.ru_utime),&utime);
timersub(&(after.ru_stime),&(before.ru_stime),&stime); timersub(&(after.ru_stime),&(before.ru_stime),&stime);

View File

@ -217,7 +217,7 @@ class Bench
this->start(); this->start();
for (typename ArcContainer::const_iterator it=ac.begin(); for (typename ArcContainer::const_iterator it=ac.begin();
it != ac.end(); ++it) { it != ac.end(); ++it) {
insert(_pm,*it,_pl,boost::false_type()); insert(_pm,*it,_pl,std::false_type());
}; };
this->stop(); this->stop();
} }

View File

@ -155,7 +155,7 @@ struct Default_traits_for_Chull_3{
//FT is a floating point type and Kernel is a filtered kernel //FT is a floating point type and Kernel is a filtered kernel
template <class Point_3, class PolygonMesh> template <class Point_3, class PolygonMesh>
struct Default_traits_for_Chull_3<Point_3, PolygonMesh, boost::true_type,Tag_true>{ struct Default_traits_for_Chull_3<Point_3, PolygonMesh, std::true_type,Tag_true>{
typedef Convex_hull_traits_3< typename Kernel_traits<Point_3>::Kernel, PolygonMesh, Tag_true > type; typedef Convex_hull_traits_3< typename Kernel_traits<Point_3>::Kernel, PolygonMesh, Tag_true > type;
}; };
@ -172,7 +172,7 @@ struct Default_polyhedron_for_Chull_3<Convex_hull_traits_3<K, P, Tag> >{
template <class T> template <class T>
struct Is_cartesian_kernel struct Is_cartesian_kernel
{ {
typedef boost::false_type type; typedef std::false_type type;
}; };
template <class Kernel, class PolygonMesh> template <class Kernel, class PolygonMesh>
@ -233,7 +233,7 @@ public:
//interval arithmetic (the protector must be created before using this predicate) //interval arithmetic (the protector must be created before using this predicate)
//and in case of failure, exact arithmetic is used. //and in case of failure, exact arithmetic is used.
template <class Kernel, class P> template <class Kernel, class P>
class Is_on_positive_side_of_plane_3<Convex_hull_traits_3<Kernel, P, Tag_true>, boost::true_type >{ class Is_on_positive_side_of_plane_3<Convex_hull_traits_3<Kernel, P, Tag_true>, std::true_type >{
typedef Simple_cartesian<CGAL::internal::Exact_field_selector<double>::Type> Exact_K; typedef Simple_cartesian<CGAL::internal::Exact_field_selector<double>::Type> Exact_K;
typedef Simple_cartesian<Interval_nt_advanced > Approx_K; typedef Simple_cartesian<Interval_nt_advanced > Approx_K;
typedef Convex_hull_traits_3<Kernel, P, Tag_true> Traits; typedef Convex_hull_traits_3<Kernel, P, Tag_true> Traits;

View File

@ -29,6 +29,6 @@ int main()
CGAL_static_assertion( (std::is_same<SCR,Default_traits_for_Chull_3<SCR::Point_3>::type>::value) ); CGAL_static_assertion( (std::is_same<SCR,Default_traits_for_Chull_3<SCR::Point_3>::type>::value) );
CGAL_static_assertion( (std::is_same<EPEC,Default_traits_for_Chull_3<EPEC::Point_3>::type>::value) ); CGAL_static_assertion( (std::is_same<EPEC,Default_traits_for_Chull_3<EPEC::Point_3>::type>::value) );
CGAL_static_assertion( (std::is_same<CGAL::Convex_hull_traits_3<EPIC, CGAL::Default, CGAL::Tag_true>,Default_traits_for_Chull_3<EPIC::Point_3>::type>::value) ); CGAL_static_assertion( (std::is_same<CGAL::Convex_hull_traits_3<EPIC, CGAL::Default, CGAL::Tag_true>,Default_traits_for_Chull_3<EPIC::Point_3>::type>::value) );
CGAL_static_assertion( (std::is_same<Is_on_positive_side_of_plane_3<CGAL::Convex_hull_traits_3<EPIC, CGAL::Default, CGAL::Tag_true>, boost::true_type >::Protector,CGAL::Protect_FPU_rounding<true> >::value) ); CGAL_static_assertion( (std::is_same<Is_on_positive_side_of_plane_3<CGAL::Convex_hull_traits_3<EPIC, CGAL::Default, CGAL::Tag_true>, std::true_type >::Protector,CGAL::Protect_FPU_rounding<true> >::value) );
return 0; return 0;
} }

View File

@ -129,14 +129,14 @@ public:
template <class GeomTraits_, class TopTraits_> template <class GeomTraits_, class TopTraits_>
class is_arrangement_2< class is_arrangement_2<
Envelope_diagram_on_surface_2<GeomTraits_, TopTraits_> Envelope_diagram_on_surface_2<GeomTraits_, TopTraits_>
> : public boost::true_type > : public std::true_type
{}; {};
// specialization // specialization
template <class GeomTraits_, class DCEL_> template <class GeomTraits_, class DCEL_>
class is_arrangement_2< class is_arrangement_2<
Envelope_diagram_2<GeomTraits_, DCEL_> Envelope_diagram_2<GeomTraits_, DCEL_>
> : public boost::true_type > : public std::true_type
{}; {};

View File

@ -61,7 +61,7 @@ public:
template<typename T> template<typename T>
struct Has_result_type struct Has_result_type
: boost::integral_constant< bool, : std::integral_constant< bool,
Has_result_type_helper< std::remove_cv_t<T>>::value> Has_result_type_helper< std::remove_cv_t<T>>::value>
{}; {};

View File

@ -13,7 +13,7 @@
#define CGAL_KERNEL_D_CARTESIAN_LA_BASE_H #define CGAL_KERNEL_D_CARTESIAN_LA_BASE_H
#include <CGAL/basic.h> #include <CGAL/basic.h>
#include <CGAL/Origin.h> #include <CGAL/Origin.h>
#include <boost/type_traits/integral_constant.hpp> #include <type_traits>
#include <CGAL/representation_tags.h> #include <CGAL/representation_tags.h>
#include <CGAL/NewKernel_d/functor_tags.h> #include <CGAL/NewKernel_d/functor_tags.h>
#include <CGAL/Uncertain.h> #include <CGAL/Uncertain.h>
@ -89,7 +89,7 @@ struct Cartesian_LA_base_d : public Dimension_base<Dim_>
::add<Vector_cartesian_const_iterator_tag>::type ::add<Vector_cartesian_const_iterator_tag>::type
Iterator_list; Iterator_list;
template<class, class=void, class=boost::integral_constant<int,0> > struct Functor { template<class, class=void, class=std::integral_constant<int,0> > struct Functor {
typedef Null_functor type; typedef Null_functor type;
}; };
template<class D> struct Functor<Construct_ttag<Vector_tag>,D> { template<class D> struct Functor<Construct_ttag<Vector_tag>,D> {
@ -105,19 +105,19 @@ struct Cartesian_LA_base_d : public Dimension_base<Dim_>
typedef CartesianDVectorBase::Construct_cartesian_const_iterator<Self> type; typedef CartesianDVectorBase::Construct_cartesian_const_iterator<Self> type;
}; };
template<class D> struct Functor<Sum_of_vectors_tag,D, template<class D> struct Functor<Sum_of_vectors_tag,D,
boost::integral_constant<int,!LA_vector::template Property<Has_vector_plus_minus_tag>::value> > { std::integral_constant<int,!LA_vector::template Property<Has_vector_plus_minus_tag>::value> > {
typedef CartesianDVectorBase::Sum_of_vectors<Self> type; typedef CartesianDVectorBase::Sum_of_vectors<Self> type;
}; };
template<class D> struct Functor<Difference_of_vectors_tag,D, template<class D> struct Functor<Difference_of_vectors_tag,D,
boost::integral_constant<int,!LA_vector::template Property<Has_vector_plus_minus_tag>::value> > { std::integral_constant<int,!LA_vector::template Property<Has_vector_plus_minus_tag>::value> > {
typedef CartesianDVectorBase::Difference_of_vectors<Self> type; typedef CartesianDVectorBase::Difference_of_vectors<Self> type;
}; };
template<class D> struct Functor<Opposite_vector_tag,D, template<class D> struct Functor<Opposite_vector_tag,D,
boost::integral_constant<int,!LA_vector::template Property<Has_vector_plus_minus_tag>::value> > { std::integral_constant<int,!LA_vector::template Property<Has_vector_plus_minus_tag>::value> > {
typedef CartesianDVectorBase::Opposite_vector<Self> type; typedef CartesianDVectorBase::Opposite_vector<Self> type;
}; };
template<class D> struct Functor<Midpoint_tag,D, template<class D> struct Functor<Midpoint_tag,D,
boost::integral_constant<int, std::integral_constant<int,
!LA_vector::template Property<Has_vector_plus_minus_tag>::value !LA_vector::template Property<Has_vector_plus_minus_tag>::value
|| !LA_vector::template Property<Has_vector_scalar_ops_tag>::value> > { || !LA_vector::template Property<Has_vector_scalar_ops_tag>::value> > {
typedef CartesianDVectorBase::Midpoint<Self> type; typedef CartesianDVectorBase::Midpoint<Self> type;
@ -135,24 +135,24 @@ struct Cartesian_LA_base_d : public Dimension_base<Dim_>
typedef CartesianDVectorBase::PV_dimension<Self> type; typedef CartesianDVectorBase::PV_dimension<Self> type;
}; };
template<class D> struct Functor<Orientation_of_vectors_tag,D, template<class D> struct Functor<Orientation_of_vectors_tag,D,
boost::integral_constant<int,!LA_vector::template Property<Has_determinant_of_iterator_to_vectors_tag>::value> > { std::integral_constant<int,!LA_vector::template Property<Has_determinant_of_iterator_to_vectors_tag>::value> > {
typedef CartesianDVectorBase::Orientation_of_vectors<Self> type; typedef CartesianDVectorBase::Orientation_of_vectors<Self> type;
}; };
template<class D> struct Functor<Orientation_of_points_tag,D, template<class D> struct Functor<Orientation_of_points_tag,D,
boost::integral_constant<int,!LA_vector::template Property<Has_determinant_of_iterator_to_points_tag>::value> > { std::integral_constant<int,!LA_vector::template Property<Has_determinant_of_iterator_to_points_tag>::value> > {
typedef CartesianDVectorBase::Orientation_of_points<Self> type; typedef CartesianDVectorBase::Orientation_of_points<Self> type;
}; };
template<class D> struct Functor<Scalar_product_tag,D, template<class D> struct Functor<Scalar_product_tag,D,
boost::integral_constant<int,!LA_vector::template Property<Has_dot_product_tag>::value> > { std::integral_constant<int,!LA_vector::template Property<Has_dot_product_tag>::value> > {
typedef CartesianDVectorBase::Scalar_product<Self> type; typedef CartesianDVectorBase::Scalar_product<Self> type;
}; };
template<class D> struct Functor<Squared_distance_to_origin_tag,D, template<class D> struct Functor<Squared_distance_to_origin_tag,D,
boost::integral_constant<int,!LA_vector::template Property<Stores_squared_norm_tag>::value> > { std::integral_constant<int,!LA_vector::template Property<Stores_squared_norm_tag>::value> > {
typedef CartesianDVectorBase::Squared_distance_to_origin_stored<Self> type; typedef CartesianDVectorBase::Squared_distance_to_origin_stored<Self> type;
}; };
// Use integral_constant<int,2> in case of failure, to distinguish from the previous one. // Use integral_constant<int,2> in case of failure, to distinguish from the previous one.
template<class D> struct Functor<Squared_distance_to_origin_tag,D, template<class D> struct Functor<Squared_distance_to_origin_tag,D,
boost::integral_constant<int, std::integral_constant<int,
(LA_vector::template Property<Stores_squared_norm_tag>::value (LA_vector::template Property<Stores_squared_norm_tag>::value
|| !LA_vector::template Property<Has_dot_product_tag>::value)*2> > { || !LA_vector::template Property<Has_dot_product_tag>::value)*2> > {
typedef CartesianDVectorBase::Squared_distance_to_origin_via_dotprod<Self> type; typedef CartesianDVectorBase::Squared_distance_to_origin_via_dotprod<Self> type;

View File

@ -38,10 +38,10 @@ template<class NT_,class Dim_,class Max_dim_=Dim_> struct LA_eigen {
struct Rebind_dimension { struct Rebind_dimension {
typedef LA_eigen< NT, D2, D3 > Other; typedef LA_eigen< NT, D2, D3 > Other;
}; };
template<class,class=void> struct Property : boost::false_type {}; template<class,class=void> struct Property : std::false_type {};
template<class D> struct Property<Has_vector_plus_minus_tag,D> : boost::true_type {}; template<class D> struct Property<Has_vector_plus_minus_tag,D> : std::true_type {};
template<class D> struct Property<Has_vector_scalar_ops_tag,D> : boost::true_type {}; template<class D> struct Property<Has_vector_scalar_ops_tag,D> : std::true_type {};
template<class D> struct Property<Has_dot_product_tag,D> : boost::true_type {}; template<class D> struct Property<Has_dot_product_tag,D> : std::true_type {};
typedef Eigen::Matrix<NT,Eigen_dimension<Dim_>::value,1,Eigen::ColMajor|Eigen::AutoAlign,Eigen_dimension<Max_dim_>::value,1> Vector; typedef Eigen::Matrix<NT,Eigen_dimension<Dim_>::value,1,Eigen::ColMajor|Eigen::AutoAlign,Eigen_dimension<Max_dim_>::value,1> Vector;
typedef Eigen::Matrix<NT,Eigen::Dynamic,1> Dynamic_vector; typedef Eigen::Matrix<NT,Eigen::Dynamic,1> Dynamic_vector;

View File

@ -38,7 +38,7 @@ template<class NT_,class Dim_,class Max_dim_=Dim_> struct Array_vector {
struct Rebind_dimension { struct Rebind_dimension {
typedef Array_vector< NT, D2, D3 > Other; typedef Array_vector< NT, D2, D3 > Other;
}; };
template<class> struct Property : boost::false_type {}; template<class> struct Property : std::false_type {};
static const unsigned d_=Max_dim_::value; static const unsigned d_=Max_dim_::value;
CGAL_static_assertion(d_ != (unsigned)UNKNOWN_DIMENSION); CGAL_static_assertion(d_ != (unsigned)UNKNOWN_DIMENSION);

View File

@ -31,19 +31,19 @@ namespace CGAL {
typedef Dimension_tag<4> Dimension; typedef Dimension_tag<4> Dimension;
typedef Dimension_tag<4> Max_dimension; typedef Dimension_tag<4> Max_dimension;
// No Rebind_dimension, this is a building block // No Rebind_dimension, this is a building block
template<class,bool=true> struct Property : boost::false_type {}; template<class,bool=true> struct Property : std::false_type {};
template<bool b> struct Property<Has_vector_plus_minus_tag,b> template<bool b> struct Property<Has_vector_plus_minus_tag,b>
: boost::true_type {}; : std::true_type {};
/* MAYBE? /* MAYBE?
template<bool b> struct Property<Has_vector_scalar_ops_tag,b> template<bool b> struct Property<Has_vector_scalar_ops_tag,b>
: boost::true_type {}; : std::true_type {};
*/ */
template<bool b> struct Property<Has_determinant_of_vectors_tag,b> template<bool b> struct Property<Has_determinant_of_vectors_tag,b>
: boost::true_type {}; : std::true_type {};
template<bool b> struct Property<Has_dot_product_tag,b> template<bool b> struct Property<Has_dot_product_tag,b>
: boost::true_type {}; : std::true_type {};
template<bool b> struct Property<Has_determinant_of_vectors_omit_last_tag,b> template<bool b> struct Property<Has_determinant_of_vectors_omit_last_tag,b>
: boost::true_type {}; : std::true_type {};
typedef __m256d Vector; typedef __m256d Vector;
struct Construct_vector { struct Construct_vector {

View File

@ -42,7 +42,7 @@ struct Add_determinant_of_iterator_to_points_from_iterator_to_vectors
}; };
template<class P,class=void> struct Property : LA::template Property<P> {}; template<class P,class=void> struct Property : LA::template Property<P> {};
template<class D> struct Property<Has_determinant_of_iterator_to_points_tag, D> : template<class D> struct Property<Has_determinant_of_iterator_to_points_tag, D> :
boost::true_type {}; std::true_type {};
// TODO: use std::minus, boost::bind, etc // TODO: use std::minus, boost::bind, etc
template<class T> struct Minus_fixed { template<class T> struct Minus_fixed {

View File

@ -42,7 +42,7 @@ struct Add_determinant_of_iterator_to_points_from_points
}; };
template<class P,class=void> struct Property : LA::template Property<P> {}; template<class P,class=void> struct Property : LA::template Property<P> {};
template<class D> struct Property<Has_determinant_of_iterator_to_points_tag, D> : template<class D> struct Property<Has_determinant_of_iterator_to_points_tag, D> :
boost::true_type {}; std::true_type {};
template<class Iter> template<class Iter>
static NT determinant_of_iterator_to_points(Iter const&first, Iter const&end){ static NT determinant_of_iterator_to_points(Iter const&first, Iter const&end){
@ -74,7 +74,7 @@ struct Add_determinant_of_iterator_to_points_from_points
}; };
template<class P,class=void> struct Property : LA::template Property<P> {}; template<class P,class=void> struct Property : LA::template Property<P> {};
template<class D> struct Property<Has_determinant_of_iterator_to_points_tag, D> : template<class D> struct Property<Has_determinant_of_iterator_to_points_tag, D> :
boost::true_type {}; std::true_type {};
template<class Iter> template<class Iter>
static NT determinant_of_iterator_to_points(Iter const&first, Iter const&end){ static NT determinant_of_iterator_to_points(Iter const&first, Iter const&end){
@ -108,7 +108,7 @@ struct Add_determinant_of_iterator_to_points_from_points
}; };
template<class P,class=void> struct Property : LA::template Property<P> {}; template<class P,class=void> struct Property : LA::template Property<P> {};
template<class D> struct Property<Has_determinant_of_iterator_to_points_tag, D> : template<class D> struct Property<Has_determinant_of_iterator_to_points_tag, D> :
boost::true_type {}; std::true_type {};
template<class Iter> template<class Iter>
static NT determinant_of_iterator_to_points(Iter const&first, Iter const&end){ static NT determinant_of_iterator_to_points(Iter const&first, Iter const&end){
@ -144,7 +144,7 @@ struct Add_determinant_of_iterator_to_points_from_points
}; };
template<class P,class=void> struct Property : LA::template Property<P> {}; template<class P,class=void> struct Property : LA::template Property<P> {};
template<class D> struct Property<Has_determinant_of_iterator_to_points_tag, D> : template<class D> struct Property<Has_determinant_of_iterator_to_points_tag, D> :
boost::true_type {}; std::true_type {};
template<class Iter> template<class Iter>
static NT determinant_of_iterator_to_points(Iter const&first, Iter const&end){ static NT determinant_of_iterator_to_points(Iter const&first, Iter const&end){
@ -182,7 +182,7 @@ struct Add_determinant_of_iterator_to_points_from_points
}; };
template<class P,class=void> struct Property : LA::template Property<P> {}; template<class P,class=void> struct Property : LA::template Property<P> {};
template<class D> struct Property<Has_determinant_of_iterator_to_points_tag, D> : template<class D> struct Property<Has_determinant_of_iterator_to_points_tag, D> :
boost::true_type {}; std::true_type {};
template<class Iter> template<class Iter>
static NT determinant_of_iterator_to_points(Iter const&first, Iter const&end){ static NT determinant_of_iterator_to_points(Iter const&first, Iter const&end){

View File

@ -42,7 +42,7 @@ struct Add_determinant_of_iterator_to_vectors_from_vectors
}; };
template<class P,class=void> struct Property : LA::template Property<P> {}; template<class P,class=void> struct Property : LA::template Property<P> {};
template<class D> struct Property<Has_determinant_of_iterator_to_vectors_tag, D> : template<class D> struct Property<Has_determinant_of_iterator_to_vectors_tag, D> :
boost::true_type {}; std::true_type {};
template<class Iter> template<class Iter>
static NT determinant_of_iterator_to_vectors(Iter const&first, Iter const&end){ static NT determinant_of_iterator_to_vectors(Iter const&first, Iter const&end){
@ -72,7 +72,7 @@ struct Add_determinant_of_iterator_to_vectors_from_vectors
}; };
template<class P,class=void> struct Property : LA::template Property<P> {}; template<class P,class=void> struct Property : LA::template Property<P> {};
template<class D> struct Property<Has_determinant_of_iterator_to_vectors_tag, D> : template<class D> struct Property<Has_determinant_of_iterator_to_vectors_tag, D> :
boost::true_type {}; std::true_type {};
template<class Iter> template<class Iter>
static NT determinant_of_iterator_to_vectors(Iter const&first, Iter const&end){ static NT determinant_of_iterator_to_vectors(Iter const&first, Iter const&end){
@ -104,7 +104,7 @@ struct Add_determinant_of_iterator_to_vectors_from_vectors
}; };
template<class P,class=void> struct Property : LA::template Property<P> {}; template<class P,class=void> struct Property : LA::template Property<P> {};
template<class D> struct Property<Has_determinant_of_iterator_to_vectors_tag, D> : template<class D> struct Property<Has_determinant_of_iterator_to_vectors_tag, D> :
boost::true_type {}; std::true_type {};
template<class Iter> template<class Iter>
static NT determinant_of_iterator_to_vectors(Iter const&first, Iter const&end){ static NT determinant_of_iterator_to_vectors(Iter const&first, Iter const&end){
@ -138,7 +138,7 @@ struct Add_determinant_of_iterator_to_vectors_from_vectors
}; };
template<class P,class=void> struct Property : LA::template Property<P> {}; template<class P,class=void> struct Property : LA::template Property<P> {};
template<class D> struct Property<Has_determinant_of_iterator_to_vectors_tag, D> : template<class D> struct Property<Has_determinant_of_iterator_to_vectors_tag, D> :
boost::true_type {}; std::true_type {};
template<class Iter> template<class Iter>
static NT determinant_of_iterator_to_vectors(Iter const&first, Iter const&end){ static NT determinant_of_iterator_to_vectors(Iter const&first, Iter const&end){
@ -174,7 +174,7 @@ struct Add_determinant_of_iterator_to_vectors_from_vectors
}; };
template<class P,class=void> struct Property : LA::template Property<P> {}; template<class P,class=void> struct Property : LA::template Property<P> {};
template<class D> struct Property<Has_determinant_of_iterator_to_vectors_tag, D> : template<class D> struct Property<Has_determinant_of_iterator_to_vectors_tag, D> :
boost::true_type {}; std::true_type {};
template<class Iter> template<class Iter>
static NT determinant_of_iterator_to_vectors(Iter const&first, Iter const&end){ static NT determinant_of_iterator_to_vectors(Iter const&first, Iter const&end){

View File

@ -42,7 +42,7 @@ struct Add_determinant_of_points_from_vectors_and_minus
}; };
template<class P,class=void> struct Property : LA::template Property<P> {}; template<class P,class=void> struct Property : LA::template Property<P> {};
template<class D> struct Property<Has_determinant_of_points_tag, D> : template<class D> struct Property<Has_determinant_of_points_tag, D> :
boost::true_type {}; std::true_type {};
static NT determinant_of_points(Vector const&a, Vector const&b, static NT determinant_of_points(Vector const&a, Vector const&b,
Vector const&c){ Vector const&c){
@ -66,7 +66,7 @@ struct Add_determinant_of_points_from_vectors_and_minus
}; };
template<class P,class=void> struct Property : LA::template Property<P> {}; template<class P,class=void> struct Property : LA::template Property<P> {};
template<class D> struct Property<Has_determinant_of_points_tag, D> : template<class D> struct Property<Has_determinant_of_points_tag, D> :
boost::true_type {}; std::true_type {};
static NT determinant_of_points(Vector const&a, Vector const&b, static NT determinant_of_points(Vector const&a, Vector const&b,
Vector const&c, Vector const&d){ Vector const&c, Vector const&d){
@ -90,7 +90,7 @@ struct Add_determinant_of_points_from_vectors_and_minus
}; };
template<class P,class=void> struct Property : LA::template Property<P> {}; template<class P,class=void> struct Property : LA::template Property<P> {};
template<class D> struct Property<Has_determinant_of_points_tag, D> : template<class D> struct Property<Has_determinant_of_points_tag, D> :
boost::true_type {}; std::true_type {};
static NT determinant_of_points(Vector const&a, Vector const&b, static NT determinant_of_points(Vector const&a, Vector const&b,
Vector const&c, Vector const&d, Vector const&e){ Vector const&c, Vector const&d, Vector const&e){
@ -114,7 +114,7 @@ struct Add_determinant_of_points_from_vectors_and_minus
}; };
template<class P,class=void> struct Property : LA::template Property<P> {}; template<class P,class=void> struct Property : LA::template Property<P> {};
template<class D> struct Property<Has_determinant_of_points_tag, D> : template<class D> struct Property<Has_determinant_of_points_tag, D> :
boost::true_type {}; std::true_type {};
static NT determinant_of_points(Vector const&a, Vector const&b, static NT determinant_of_points(Vector const&a, Vector const&b,
Vector const&c, Vector const&d, Vector const&e, Vector const&f){ Vector const&c, Vector const&d, Vector const&e, Vector const&f){
@ -138,7 +138,7 @@ struct Add_determinant_of_points_from_vectors_and_minus
}; };
template<class P,class=void> struct Property : LA::template Property<P> {}; template<class P,class=void> struct Property : LA::template Property<P> {};
template<class D> struct Property<Has_determinant_of_points_tag, D> : template<class D> struct Property<Has_determinant_of_points_tag, D> :
boost::true_type {}; std::true_type {};
static NT determinant_of_points(Vector const&a, Vector const&b, static NT determinant_of_points(Vector const&a, Vector const&b,
Vector const&c, Vector const&d, Vector const&e, Vector const&f, Vector const&c, Vector const&d, Vector const&e, Vector const&f,

View File

@ -46,7 +46,7 @@ struct CGAL_CLASS
}; };
template<class P,class=void> struct Property : LA::template Property<P> {}; template<class P,class=void> struct Property : LA::template Property<P> {};
template<class D> struct Property<CGAL_TAG, D> : template<class D> struct Property<CGAL_TAG, D> :
boost::true_type {}; std::true_type {};
static NT CGAL_FUNC(Vector const&a, Vector const&b){ static NT CGAL_FUNC(Vector const&a, Vector const&b){
return CGAL::determinant_of_vectors<NT>(a,b); return CGAL::determinant_of_vectors<NT>(a,b);
@ -69,7 +69,7 @@ struct CGAL_CLASS
}; };
template<class P,class=void> struct Property : LA::template Property<P> {}; template<class P,class=void> struct Property : LA::template Property<P> {};
template<class D> struct Property<CGAL_TAG, D> : template<class D> struct Property<CGAL_TAG, D> :
boost::true_type {}; std::true_type {};
static NT CGAL_FUNC(Vector const&a, Vector const&b, static NT CGAL_FUNC(Vector const&a, Vector const&b,
Vector const&c){ Vector const&c){
@ -93,7 +93,7 @@ struct CGAL_CLASS
}; };
template<class P,class=void> struct Property : LA::template Property<P> {}; template<class P,class=void> struct Property : LA::template Property<P> {};
template<class D> struct Property<CGAL_TAG, D> : template<class D> struct Property<CGAL_TAG, D> :
boost::true_type {}; std::true_type {};
static NT CGAL_FUNC(Vector const&a, Vector const&b, static NT CGAL_FUNC(Vector const&a, Vector const&b,
Vector const&c, Vector const&d){ Vector const&c, Vector const&d){
@ -117,7 +117,7 @@ struct CGAL_CLASS
}; };
template<class P,class=void> struct Property : LA::template Property<P> {}; template<class P,class=void> struct Property : LA::template Property<P> {};
template<class D> struct Property<CGAL_TAG, D> : template<class D> struct Property<CGAL_TAG, D> :
boost::true_type {}; std::true_type {};
static NT CGAL_FUNC(Vector const&a, Vector const&b, static NT CGAL_FUNC(Vector const&a, Vector const&b,
Vector const&c, Vector const&d, Vector const&e){ Vector const&c, Vector const&d, Vector const&e){
@ -141,7 +141,7 @@ struct CGAL_CLASS
}; };
template<class P,class=void> struct Property : LA::template Property<P> {}; template<class P,class=void> struct Property : LA::template Property<P> {};
template<class D> struct Property<CGAL_TAG, D> : template<class D> struct Property<CGAL_TAG, D> :
boost::true_type {}; std::true_type {};
static NT CGAL_FUNC(Vector const&a, Vector const&b, static NT CGAL_FUNC(Vector const&a, Vector const&b,
Vector const&c, Vector const&d, Vector const&e, Vector const&f){ Vector const&c, Vector const&d, Vector const&e, Vector const&f){

View File

@ -32,17 +32,17 @@ namespace CGAL {
typedef Dimension_tag<2> Dimension; typedef Dimension_tag<2> Dimension;
typedef Dimension_tag<2> Max_dimension; typedef Dimension_tag<2> Max_dimension;
// No Rebind_dimension, this is a building block // No Rebind_dimension, this is a building block
template<class,bool=true> struct Property : boost::false_type {}; template<class,bool=true> struct Property : std::false_type {};
template<bool b> struct Property<Has_vector_plus_minus_tag,b> template<bool b> struct Property<Has_vector_plus_minus_tag,b>
: boost::true_type {}; : std::true_type {};
/* MAYBE? /* MAYBE?
template<bool b> struct Property<Has_vector_scalar_ops_tag,b> template<bool b> struct Property<Has_vector_scalar_ops_tag,b>
: boost::true_type {}; : std::true_type {};
*/ */
template<bool b> struct Property<Has_determinant_of_vectors_tag,b> template<bool b> struct Property<Has_determinant_of_vectors_tag,b>
: boost::true_type {}; : std::true_type {};
template<bool b> struct Property<Has_dot_product_tag,b> template<bool b> struct Property<Has_dot_product_tag,b>
: boost::true_type {}; : std::true_type {};
typedef __m128d Vector; typedef __m128d Vector;
struct Construct_vector { struct Construct_vector {

View File

@ -70,13 +70,13 @@ namespace CGAL {
typedef Dimension_tag<2> Dimension; typedef Dimension_tag<2> Dimension;
typedef Dimension_tag<2> Max_dimension; typedef Dimension_tag<2> Max_dimension;
// No Rebind_dimension, this is a building block // No Rebind_dimension, this is a building block
template<class,bool=true> struct Property : boost::false_type {}; template<class,bool=true> struct Property : std::false_type {};
//template<bool b> struct Property<Has_vector_plus_minus_tag,b> //template<bool b> struct Property<Has_vector_plus_minus_tag,b>
// : boost::true_type {}; // : std::true_type {};
template<bool b> struct Property<Has_determinant_of_vectors_tag,b> template<bool b> struct Property<Has_determinant_of_vectors_tag,b>
: boost::true_type {}; : std::true_type {};
//template<bool b> struct Property<Has_determinant_of_points_tag,b> //template<bool b> struct Property<Has_determinant_of_points_tag,b>
// : boost::true_type {}; // : std::true_type {};
// Advertise somehow that the sign_of_determinant* are exact? // Advertise somehow that the sign_of_determinant* are exact?
typedef std::array<NT1,2> Vector; typedef std::array<NT1,2> Vector;

View File

@ -29,7 +29,7 @@ template<class NT_,class Dim_,class Max_dim_=Dim_> struct Vector_vector {
struct Rebind_dimension { struct Rebind_dimension {
typedef Vector_vector< NT, D2, D3 > Other; typedef Vector_vector< NT, D2, D3 > Other;
}; };
template<class> struct Property : boost::false_type {}; template<class> struct Property : std::false_type {};
struct Construct_vector { struct Construct_vector {
struct Dimension { struct Dimension {

View File

@ -20,7 +20,7 @@ namespace CGAL {
BOOST_MPL_HAS_XXX_TRAIT_DEF(Is_pretty) \ BOOST_MPL_HAS_XXX_TRAIT_DEF(Is_pretty) \
} \ } \
template<class T,bool=internal::has_##Is_pretty<T>::value> \ template<class T,bool=internal::has_##Is_pretty<T>::value> \
struct Is_pretty : boost::false_type {}; \ struct Is_pretty : std::false_type {}; \
template<class T> \ template<class T> \
struct Is_pretty<T,true> : T::Is_pretty {} struct Is_pretty<T,true> : T::Is_pretty {}

View File

@ -69,19 +69,19 @@ namespace CGAL {
Provides_functor<K, typename boost::mpl::front<List>::type>, Provides_functor<K, typename boost::mpl::front<List>::type>,
Provides_functors<K, typename boost::mpl::pop_front<List>::type> > {}; Provides_functors<K, typename boost::mpl::pop_front<List>::type> > {};
template<class K, class List> template<class K, class List>
struct Provides_functors<K, List, true> : boost::true_type {}; struct Provides_functors<K, List, true> : std::true_type {};
template<class K, class List, bool=boost::mpl::empty<List>::type::value> template<class K, class List, bool=boost::mpl::empty<List>::type::value>
struct Provides_types : boost::mpl::and_ < struct Provides_types : boost::mpl::and_ <
Provides_type<K, typename boost::mpl::front<List>::type>, Provides_type<K, typename boost::mpl::front<List>::type>,
Provides_types<K, typename boost::mpl::pop_front<List>::type> > {}; Provides_types<K, typename boost::mpl::pop_front<List>::type> > {};
template<class K, class List> template<class K, class List>
struct Provides_types<K, List, true> : boost::true_type {}; struct Provides_types<K, List, true> : std::true_type {};
namespace internal { BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_Type,template Type<Null_tag>,false) } namespace internal { BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_Type,template Type<Null_tag>,false) }
template<class Kernel, class Tg, template<class Kernel, class Tg,
bool = internal::has_Type<Kernel>::value /* false */> bool = internal::has_Type<Kernel>::value /* false */>
struct Provides_type_i : boost::false_type {}; struct Provides_type_i : std::false_type {};
template<class Kernel, class Tg> template<class Kernel, class Tg>
struct Provides_type_i <Kernel, Tg, true> struct Provides_type_i <Kernel, Tg, true>
: Has_type_different_from<typename Kernel::template Type<Tg>, Null_type> {}; : Has_type_different_from<typename Kernel::template Type<Tg>, Null_type> {};
@ -93,7 +93,7 @@ namespace CGAL {
template<class Kernel, class Tg, class O=void, template<class Kernel, class Tg, class O=void,
bool = internal::has_Functor<Kernel>::value /* false */> bool = internal::has_Functor<Kernel>::value /* false */>
struct Provides_functor_i : boost::false_type {}; struct Provides_functor_i : std::false_type {};
template<class Kernel, class Tg, class O> template<class Kernel, class Tg, class O>
struct Provides_functor_i <Kernel, Tg, O, true> struct Provides_functor_i <Kernel, Tg, O, true>
: Has_type_different_from<typename Kernel::template Functor<Tg, O>, Null_functor> {}; : Has_type_different_from<typename Kernel::template Functor<Tg, O>, Null_functor> {};
@ -332,19 +332,19 @@ namespace CGAL {
struct Stores_squared_norm_tag {}; struct Stores_squared_norm_tag {};
template<class> struct Preserved_by_non_linear_extra_coordinate template<class> struct Preserved_by_non_linear_extra_coordinate
: boost::false_type {}; : std::false_type {};
template<> struct Preserved_by_non_linear_extra_coordinate template<> struct Preserved_by_non_linear_extra_coordinate
<Has_extra_dimension_tag> : boost::true_type {}; <Has_extra_dimension_tag> : std::true_type {};
template<> struct Preserved_by_non_linear_extra_coordinate template<> struct Preserved_by_non_linear_extra_coordinate
<Has_determinant_of_vectors_tag> : boost::true_type {}; <Has_determinant_of_vectors_tag> : std::true_type {};
template<> struct Preserved_by_non_linear_extra_coordinate template<> struct Preserved_by_non_linear_extra_coordinate
<Has_determinant_of_points_tag> : boost::true_type {}; <Has_determinant_of_points_tag> : std::true_type {};
template<> struct Preserved_by_non_linear_extra_coordinate template<> struct Preserved_by_non_linear_extra_coordinate
<Has_determinant_of_iterator_to_vectors_tag> : boost::true_type {}; <Has_determinant_of_iterator_to_vectors_tag> : std::true_type {};
template<> struct Preserved_by_non_linear_extra_coordinate template<> struct Preserved_by_non_linear_extra_coordinate
<Has_determinant_of_iterator_to_points_tag> : boost::true_type {}; <Has_determinant_of_iterator_to_points_tag> : std::true_type {};
template<> struct Preserved_by_non_linear_extra_coordinate template<> struct Preserved_by_non_linear_extra_coordinate
<Has_determinant_of_vectors_omit_last_tag> : boost::true_type {}; <Has_determinant_of_vectors_omit_last_tag> : std::true_type {};
// Kernel properties // Kernel properties
struct Point_stores_squared_distance_to_origin_tag {}; struct Point_stores_squared_distance_to_origin_tag {};

View File

@ -35,7 +35,7 @@ namespace internal {
} }
template <class T, class No, bool=internal::has_type<T>::value /*false*/> template <class T, class No, bool=internal::has_type<T>::value /*false*/>
struct Has_type_different_from : boost::false_type {}; struct Has_type_different_from : std::false_type {};
template <class T, class No> template <class T, class No>
struct Has_type_different_from <T, No, true> struct Has_type_different_from <T, No, true>
: boost::mpl::not_<std::is_same<typename T::type, No> > {}; : boost::mpl::not_<std::is_same<typename T::type, No> > {};

View File

@ -1184,9 +1184,9 @@ public:
// number type (like a multiprecision), the coordinates of the points // number type (like a multiprecision), the coordinates of the points
// will increase a lot due to the relocation step. These functions // will increase a lot due to the relocation step. These functions
// simply turn a relocated point to a rounded to double version. // simply turn a relocated point to a rounded to double version.
void relocate_on_the_double_grid(Point&, boost::true_type) const void relocate_on_the_double_grid(Point&, std::true_type) const
{} {}
void relocate_on_the_double_grid(Point& p, boost::false_type) const void relocate_on_the_double_grid(Point& p, std::false_type) const
{ {
double x=to_double(m_traits.compute_x_2_object()(p)); double x=to_double(m_traits.compute_x_2_object()(p));
double y=to_double(m_traits.compute_y_2_object()(p)); double y=to_double(m_traits.compute_y_2_object()(p));

View File

@ -1147,7 +1147,7 @@ bool do_intersect(const PolylineRange& polylines1,
typename boost::mpl::eval_if< typename boost::mpl::eval_if<
boost::has_range_iterator<PolylineRange>, boost::has_range_iterator<PolylineRange>,
boost::range_value<PolylineRange>, boost::range_value<PolylineRange>,
boost::false_type >::type std::false_type >::type
>::value >::value
>* = 0//end enable_if >* = 0//end enable_if
#endif #endif
@ -1194,7 +1194,7 @@ bool do_intersect(const Polyline& polyline1,
typename boost::mpl::eval_if< typename boost::mpl::eval_if<
boost::has_range_iterator<Polyline>, boost::has_range_iterator<Polyline>,
boost::range_value<Polyline>, boost::range_value<Polyline>,
boost::false_type std::false_type
>::type >::type
>::value >::value
>* = 0//end enable_if >* = 0//end enable_if
@ -1365,7 +1365,7 @@ bool do_intersect(const TriangleMesh& tm,
typename boost::mpl::eval_if< typename boost::mpl::eval_if<
boost::has_range_iterator<PolylineRange>, boost::has_range_iterator<PolylineRange>,
boost::range_value<PolylineRange>, boost::range_value<PolylineRange>,
boost::false_type std::false_type
>::type >::type
>::value >::value
>* = 0//end enable_if >* = 0//end enable_if
@ -1435,7 +1435,7 @@ bool do_intersect(const TriangleMesh& tm,
typename boost::mpl::eval_if< typename boost::mpl::eval_if<
boost::has_range_iterator<Polyline>, boost::has_range_iterator<Polyline>,
boost::range_value<Polyline>, boost::range_value<Polyline>,
boost::false_type std::false_type
>::type >::type
>::type // not a range of a range >::type // not a range of a range
>::value >::value

View File

@ -17,7 +17,7 @@
#ifndef CGAL_IS_CONVERTIBLE_H #ifndef CGAL_IS_CONVERTIBLE_H
#define CGAL_IS_CONVERTIBLE_H #define CGAL_IS_CONVERTIBLE_H
#include <boost/type_traits/integral_constant.hpp> #include <type_traits>
#ifdef CGAL_USE_GMPXX #ifdef CGAL_USE_GMPXX
#include <gmpxx.h> #include <gmpxx.h>
#endif #endif
@ -30,7 +30,7 @@ template<class From,class To>struct is_implicit_convertible
#ifdef CGAL_USE_GMPXX #ifdef CGAL_USE_GMPXX
// Work around a gmpxx misfeature // Work around a gmpxx misfeature
template<class T>struct is_implicit_convertible<__gmp_expr<mpq_t,T>,mpz_class> template<class T>struct is_implicit_convertible<__gmp_expr<mpq_t,T>,mpz_class>
: boost::false_type {}; : std::false_type {};
#endif #endif
// TODO: add is_explicit_convertible (using boost::is_constructible?) // TODO: add is_explicit_convertible (using boost::is_constructible?)