s/boost::result_of/cpp11::result_of/g

This commit is contained in:
Sébastien Loriot 2013-03-14 10:38:13 +01:00
parent d6905c61be
commit f97d6b8bd9
49 changed files with 172 additions and 172 deletions

View File

@ -71,7 +71,7 @@ public:
template<typename Query>
struct Intersection_and_primitive_id {
typedef std::pair<
typename boost::result_of<typename GeomTraits::Intersect_3(Query, typename Primitive::Datum) >::type,
typename cpp11::result_of<typename GeomTraits::Intersect_3(Query, typename Primitive::Datum) >::type,
typename Primitive::Id > Type;
typedef Type type;
};

View File

@ -79,7 +79,7 @@ public:
typedef Arr_point_location_result<Arrangement_2> Result;
typedef typename Result::Type Result_type;
// Support boost::result_of
// Support cpp11::result_of
typedef Result_type result_type;
protected:

View File

@ -55,7 +55,7 @@ public:
typedef Arr_point_location_result<Arrangement_2> Result;
typedef typename Result::Type Result_type;
// Support boost::result_of
// Support cpp11::result_of
typedef Result_type result_type;
protected:

View File

@ -57,7 +57,7 @@ public:
typedef Arr_point_location_result<Arrangement_2> Result;
typedef typename Result::Type Result_type;
// Support boost::result_of
// Support cpp11::result_of
typedef Result_type result_type;
protected:

View File

@ -112,7 +112,7 @@ protected:
typedef typename Result::Type Result_type;
public:
// Support boost::result_of
// Support cpp11::result_of
typedef Result_type result_type;
protected:

View File

@ -106,7 +106,7 @@ public:
typedef Arr_point_location_result<Arrangement_2> Result;
typedef typename Result::Type Result_type;
// Support boost::result_of
// Support cpp11::result_of
typedef Result_type result_type;
protected:

View File

@ -58,7 +58,7 @@ public:
typedef Arr_point_location_result<Arrangement_2> Result;
typedef typename Result::Type Result_type;
// Support boost::result_of
// Support cpp11::result_of
typedef Result_type result_type;
protected:

View File

@ -24,7 +24,7 @@ double prob_2() {
if(CGAL::orientation(p4, p5, p6) != CGAL::COUNTERCLOCKWISE) std::swap(p4, p6);
T o2 = T(p4, p5, p6);
typedef boost::result_of<CircularK::Intersect_2(T, T)>::type
typedef cpp11::result_of<CircularK::Intersect_2(T, T)>::type
Intersection_result;
std::vector<Intersection_result> res;
CGAL::intersection(o1, o2, std::back_inserter(res));

View File

@ -173,7 +173,7 @@ namespace internal {
_begin = CGAL::circle_intersect<CK>(c, c1, b_1);
_end = CGAL::circle_intersect<CK>(c, c2, b_2);
} else {
typedef std::vector<typename boost::result_of<typename CK::Intersect_2(typename CK::Circle_2,
typedef std::vector<typename cpp11::result_of<typename CK::Intersect_2(typename CK::Circle_2,
typename CK::Circle_2)>::type>
solutions_container;

View File

@ -75,7 +75,7 @@ public:
intersect(const Line_2 & l, const Circle_2 & c, const bool b)
{
typedef std::vector<typename boost::result_of<typename CK::Intersect_2(Line_2, Circle_2)>::type>
typedef std::vector<typename cpp11::result_of<typename CK::Intersect_2(Line_2, Circle_2)>::type>
solutions_container;
solutions_container solutions;
@ -130,7 +130,7 @@ public:
CGAL_kernel_precondition(do_intersect(support, l1));
CGAL_kernel_precondition(do_intersect(support, l2));
//typedef typename Root_of_2::RT RT_2;
typename boost::result_of<typename CK::Intersect_2(Line_2, Line_2)>::type
typename cpp11::result_of<typename CK::Intersect_2(Line_2, Line_2)>::type
v = CGAL::internal::intersection(support, l1, CK());
CGAL_assertion(v);

View File

@ -35,7 +35,7 @@ circle_intersect( const typename CK::Circle_2 & c1,
const typename CK::Circle_2 & c2,
bool b )
{
typedef std::vector<typename boost::result_of<typename CK::Intersect_2(typename CK::Circle_2,
typedef std::vector<typename cpp11::result_of<typename CK::Intersect_2(typename CK::Circle_2,
typename CK::Circle_2)>::type> solutions_container;
solutions_container solutions;
@ -122,7 +122,7 @@ namespace CircularFunctors {
const typename CK::Circle_2 & c2,
OutputIterator res )
{
typedef typename boost::result_of<typename CK::Intersect_2(typename CK::Circle_2, typename CK::Circle_2)>
typedef typename cpp11::result_of<typename CK::Intersect_2(typename CK::Circle_2, typename CK::Circle_2)>
::type result_type;
typedef typename CK::Algebraic_kernel AK;
typedef typename CK::Polynomial_for_circles_2_2 Equation;

View File

@ -542,7 +542,7 @@ namespace CircularFunctors {
const typename CK::Circular_arc_2 &a2,
OutputIterator res )
{
typedef typename boost::result_of<typename CK::Intersect_2(typename CK::Circular_arc_2,
typedef typename cpp11::result_of<typename CK::Intersect_2(typename CK::Circular_arc_2,
typename CK::Circular_arc_2)>::type result_type;
typedef std::vector<CGAL::Object> solutions_container;

View File

@ -381,7 +381,7 @@ namespace CircularFunctors {
const typename CK::Circle_2 & c,
OutputIterator res )
{
typedef typename boost::result_of<typename CK::Intersect_2(typename CK::Line_2, typename CK::Circle_2)>
typedef typename cpp11::result_of<typename CK::Intersect_2(typename CK::Line_2, typename CK::Circle_2)>
::type result_type;
typedef typename CK::Algebraic_kernel AK;
typedef typename CK::Polynomial_1_2 Equation_line;
@ -416,7 +416,7 @@ namespace CircularFunctors {
const typename CK::Line_arc_2 &a2,
OutputIterator res )
{
typedef typename boost::result_of<typename CK::Intersect_2(typename CK::Line_arc_2, typename CK::Line_arc_2)>
typedef typename cpp11::result_of<typename CK::Intersect_2(typename CK::Line_arc_2, typename CK::Line_arc_2)>
::type result_type;
typedef typename CK::Circular_arc_point_2 Circular_arc_point_2;
typedef typename CK::Line_arc_2 Line_arc_2;
@ -482,7 +482,7 @@ namespace CircularFunctors {
}
}
typename boost::result_of<typename CK::Intersect_2(typename CK::Line_2, typename CK::Line_2)>::type
typename cpp11::result_of<typename CK::Intersect_2(typename CK::Line_2, typename CK::Line_2)>::type
v = CGAL::internal::intersection(a1.supporting_line(), a2.supporting_line(), CK());
if(!v) return res;
@ -515,7 +515,7 @@ namespace CircularFunctors {
const typename CK::Circle_2 &c,
OutputIterator res )
{
typedef std::vector<typename boost::result_of<typename CK::Intersect_2(typename CK::Line_2, typename CK::Circle_2)>::type>
typedef std::vector<typename cpp11::result_of<typename CK::Intersect_2(typename CK::Line_2, typename CK::Circle_2)>::type>
solutions_container;
solutions_container solutions;
@ -557,7 +557,7 @@ namespace CircularFunctors {
OutputIterator res )
{
typedef std::vector<CGAL::Object > solutions_container;
typedef typename boost::result_of<typename CK::Intersect_2(typename CK::Line_arc_2, typename CK::Circular_arc_2 )>
typedef typename cpp11::result_of<typename CK::Intersect_2(typename CK::Line_arc_2, typename CK::Circular_arc_2 )>
::type result_type;
typedef typename CK::Circular_arc_2 Circular_arc_2;
typedef typename CK::Circular_arc_point_2 Circular_arc_point_2;
@ -639,7 +639,7 @@ namespace CircularFunctors {
*res++ = result_type(std::make_pair(q,1u));
return res;
} else { //Case 4b
typedef std::vector<typename boost::result_of<typename CK::Intersect_2(typename CK::Line_2, typename CK::Circle_2)>::type>
typedef std::vector<typename cpp11::result_of<typename CK::Intersect_2(typename CK::Line_2, typename CK::Circle_2)>::type>
container;
container solutions;
CGAL::CircularFunctors::intersect_2<CK>( l.supporting_line(), c.supporting_circle(),
@ -763,7 +763,7 @@ namespace CircularFunctors {
typedef typename CK::Circular_arc_point_2 Circular_arc_point_2;
typedef typename CK::Point_2 Point_2;
typedef typename CK::Line_2 Line_2;
typedef typename boost::result_of<typename CK::Intersect_2(Line_2, Line_arc_2)>::type result_type;
typedef typename cpp11::result_of<typename CK::Intersect_2(Line_2, Line_arc_2)>::type result_type;
if(LinearFunctors::non_oriented_equal<CK>(l, la.supporting_line())) {
*res++ = result_type(la);
@ -794,7 +794,7 @@ namespace CircularFunctors {
typedef typename CK::Circular_arc_point_2 Circular_arc_point_2;
typedef typename CK::Line_2 Line_2;
typedef std::vector< typename boost::result_of<typename CK::Intersect_2(Line_2, typename CK::Circle_2 )>::type>
typedef std::vector< typename cpp11::result_of<typename CK::Intersect_2(Line_2, typename CK::Circle_2 )>::type>
solutions_container;
solutions_container solutions;

View File

@ -47,7 +47,7 @@ namespace internal { \
bool \
do_intersect(const typename K::A &c1, const typename K::B &c2, const K&) \
{ \
std::vector< typename boost::result_of<typename K::Intersect_2(typename K::A, typename K::B)>::type > res; \
std::vector< typename cpp11::result_of<typename K::Intersect_2(typename K::A, typename K::B)>::type > res; \
typename K::Intersect_2()(c1,c2,std::back_inserter(res)); \
return !res.empty(); \
} \

View File

@ -164,7 +164,7 @@ namespace CGAL {
const Sphere_3 &s1, bool less_xyz_s1,
const Sphere_3 &s2, bool less_xyz_s2)
{
typedef typename boost::result_of<typename SK::Intersect_3(Circle_3, Sphere_3)>::type result_type;
typedef typename cpp11::result_of<typename SK::Intersect_3(Circle_3, Sphere_3)>::type result_type;
std::vector<result_type> sols1, sols2;
// The spheres must not include the circle
CGAL_kernel_precondition(!SK().has_on_3_object()(s1,c));
@ -191,7 +191,7 @@ namespace CGAL {
const Plane_3 &p1, bool less_xyz_p1,
const Plane_3 &p2, bool less_xyz_p2)
{
typedef typename boost::result_of<typename SK::Intersect_3(Circle_3, Plane_3)>::type result_type;
typedef typename cpp11::result_of<typename SK::Intersect_3(Circle_3, Plane_3)>::type result_type;
std::vector<result_type> sols1, sols2;
// The planes must not include the circle
CGAL_kernel_precondition(!SK().has_on_3_object()(p1,c));

View File

@ -74,7 +74,7 @@ public:
const Sphere_3 &s2,
const Sphere_3 &s3,
const bool less_xyz = true) {
std::vector<typename boost::result_of<typename SK::Intersect_3(Sphere_3, Sphere_3, Sphere_3)>::type> sols;
std::vector<typename cpp11::result_of<typename SK::Intersect_3(Sphere_3, Sphere_3, Sphere_3)>::type> sols;
SK().intersect_3_object()(s1, s2, s3, std::back_inserter(sols));
// s1,s2,s3 must intersect
CGAL_kernel_precondition(sols.size() != 0);
@ -97,7 +97,7 @@ public:
const Sphere_3 &s1,
const Sphere_3 &s2,
const bool less_xyz = true) {
std::vector<typename boost::result_of<typename SK::Intersect_3(Plane_3, Sphere_3, Sphere_3)>::type> sols;
std::vector<typename cpp11::result_of<typename SK::Intersect_3(Plane_3, Sphere_3, Sphere_3)>::type> sols;
SK().intersect_3_object()(p, s1, s2, std::back_inserter(sols));
// s1,s2,s3 must intersect
CGAL_kernel_precondition(sols.size() != 0);
@ -120,7 +120,7 @@ public:
const Plane_3 &p2,
const Sphere_3 &s,
const bool less_xyz = true) {
std::vector<typename boost::result_of<typename SK::Intersect_3(Plane_3, Plane_3, Sphere_3)>::type> sols;
std::vector<typename cpp11::result_of<typename SK::Intersect_3(Plane_3, Plane_3, Sphere_3)>::type> sols;
SK().intersect_3_object()(p1, p2, s, std::back_inserter(sols));
// s1,s2,s3 must intersect
CGAL_kernel_precondition(sols.size() != 0);
@ -142,7 +142,7 @@ public:
Circular_arc_point_3(const Line_3 &l,
const Sphere_3 &s,
const bool less_xyz = true) {
std::vector<typename boost::result_of<typename SK::Intersect_3(Line_3, Sphere_3)>::type> sols;
std::vector<typename cpp11::result_of<typename SK::Intersect_3(Line_3, Sphere_3)>::type> sols;
SK().intersect_3_object()(l, s, std::back_inserter(sols));
// s1,s2,s3 must intersect
CGAL_kernel_precondition(sols.size() != 0);
@ -164,7 +164,7 @@ public:
Circular_arc_point_3(const Circle_3 &c,
const Plane_3 &p,
const bool less_xyz = true) {
std::vector<typename boost::result_of<typename SK::Intersect_3(Circle_3, Plane_3)>::type> sols;
std::vector<typename cpp11::result_of<typename SK::Intersect_3(Circle_3, Plane_3)>::type> sols;
SK().intersect_3_object()(c, p, std::back_inserter(sols));
// s1,s2,s3 must intersect
CGAL_kernel_precondition(sols.size() != 0);
@ -186,7 +186,7 @@ public:
Circular_arc_point_3(const Circle_3 &c,
const Sphere_3 &s,
const bool less_xyz = true) {
std::vector<typename boost::result_of<typename SK::Intersect_3(Circle_3, Sphere_3)>::type> sols;
std::vector<typename cpp11::result_of<typename SK::Intersect_3(Circle_3, Sphere_3)>::type> sols;
SK().intersect_3_object()(c, s, std::back_inserter(sols));
// s1,s2,s3 must intersect
CGAL_kernel_precondition(sols.size() != 0);

View File

@ -93,7 +93,7 @@ namespace CGAL {
const Sphere_3 &s,
bool less_xyz_first = true)
{
std::vector<typename boost::result_of<typename SK::Intersect_3(Line_3, Sphere_3)>::type> sols;
std::vector<typename cpp11::result_of<typename SK::Intersect_3(Line_3, Sphere_3)>::type> sols;
SK().intersect_3_object()(l, s, std::back_inserter(sols));
// l must intersect s in 2 points
CGAL_kernel_precondition(sols.size() == 2);
@ -112,7 +112,7 @@ namespace CGAL {
const Sphere_3 &s1, bool less_xyz_s1,
const Sphere_3 &s2, bool less_xyz_s2)
{
std::vector<typename boost::result_of<typename SK::Intersect_3(Line_3, Sphere_3)>::type> sols1, sols2;
std::vector<typename cpp11::result_of<typename SK::Intersect_3(Line_3, Sphere_3)>::type> sols1, sols2;
SK().intersect_3_object()(l, s1, std::back_inserter(sols1));
SK().intersect_3_object()(l, s2, std::back_inserter(sols2));
// l must intersect s1 and s2
@ -135,7 +135,7 @@ namespace CGAL {
CGAL_kernel_precondition(!SK().has_on_3_object()(p1,l));
CGAL_kernel_precondition(!SK().has_on_3_object()(p2,l));
// l must intersect p1 and p2
typedef typename boost::result_of<typename SK::Intersect_3(Line_3, Plane_3)>::type Intersection;
typedef typename cpp11::result_of<typename SK::Intersect_3(Line_3, Plane_3)>::type Intersection;
Intersection i1 = SK().intersect_3_object()(l, p1);
Intersection i2 = SK().intersect_3_object()(l, p2);
const typename SK::Point_3* point1=boost::get<typename SK::Point_3>( & *i1 );

View File

@ -1107,14 +1107,14 @@ template < class SK > \
#define CGAL_SPHERICAL_KERNEL_MACRO_DO_INTERSECTION_3_2(A,B) \
result_type \
operator()(const A & c1, const B & c2) const \
{ std::vector< typename boost::result_of<typename SK::Intersect_3(A, B)>::type > res; \
{ std::vector< typename cpp11::result_of<typename SK::Intersect_3(A, B)>::type > res; \
typename SK::Intersect_3()(c1,c2,std::back_inserter(res)); \
return !res.empty(); }
#define CGAL_SPHERICAL_KERNEL_MACRO_DO_INTERSECTION_3_3(A,B,C) \
result_type \
operator()(const A & c1, const B & c2, const C & c3) const \
{ std::vector< typename boost::result_of<typename SK::Intersect_3(A, B, C)>::type > res; \
{ std::vector< typename cpp11::result_of<typename SK::Intersect_3(A, B, C)>::type > res; \
typename SK::Intersect_3()(c1,c2,c3,std::back_inserter(res)); \
return !res.empty(); }
@ -1177,7 +1177,7 @@ template < class SK > \
template <typename A, typename B, typename C,
bool is_iterator = CGAL::is_iterator<typename boost::decay<C>::type>::value>
struct result_impl
{ typedef typename boost::result_of<typename SK::Linear_kernel::Intersect_3(A, B, C)>::type
{ typedef typename cpp11::result_of<typename SK::Linear_kernel::Intersect_3(A, B, C)>::type
type; };
template <typename A, typename B, typename C>
@ -1191,7 +1191,7 @@ template < class SK > \
// the binary overload always goes to Linear::Intersect_3
template <typename F, typename A, typename B>
struct result<F(A, B)>
{ typedef typename boost::result_of<typename SK::Linear_kernel::Intersect_3(A, B)>::type type; };
{ typedef typename cpp11::result_of<typename SK::Linear_kernel::Intersect_3(A, B)>::type type; };
// we match the ternary case if the last argument is an iterator,
// otherwise Linear::Intersect_3 wins
@ -1283,12 +1283,12 @@ template < class SK > \
// forward the intersection functions from the linear kernel
template <typename A, typename B>
typename boost::result_of<typename SK::Intersect_3(A, B)>::type
typename cpp11::result_of<typename SK::Intersect_3(A, B)>::type
operator()(const A& a, const B& b)
{ return typename SK::Linear_kernel().intersect_3_object()(a, b); }
template <typename A, typename B, typename C>
typename boost::result_of<typename SK::Intersect_3(A, B, C)>::type
typename cpp11::result_of<typename SK::Intersect_3(A, B, C)>::type
operator()(const A& a, const B& b, const C& c,
typename boost::enable_if_c<!(CGAL::is_iterator<typename boost::decay<C>::type>::value)>::type* = 0)
{ return typename SK::Linear_kernel().intersect_3_object()(a, b, c); }

View File

@ -120,7 +120,7 @@ namespace CGAL {
typename SK::FT z_coord=extremal_points_z_coordinate<SK>(circle,sphere);
typename SK::Plane_3 plane(0,0,1,-z_coord);
std::vector<typename boost::result_of<
std::vector<typename cpp11::result_of<
typename SK::Intersect_3(typename SK::Circle_3, typename SK::Plane_3)>::type > inters;
intersect_3<SK>(circle,plane,std::back_inserter(inters));

View File

@ -89,7 +89,7 @@ namespace CGAL {
{
typedef typename SK::Circular_arc_point_3 Circular_arc_point_3;
typedef std::vector<
typename boost::result_of<typename SK::Intersect_3(typename SK::Line_3, typename SK::Circle_3 )>::type
typename cpp11::result_of<typename SK::Intersect_3(typename SK::Line_3, typename SK::Circle_3 )>::type
> solutions_container;
typedef std::pair<Circular_arc_point_3, unsigned> Solution;
@ -120,11 +120,11 @@ namespace CGAL {
OutputIterator res)
{
typedef typename SK::Circular_arc_point_3 Circular_arc_point_3;
typedef typename boost::result_of<
typedef typename cpp11::result_of<
typename SK::Intersect_3(typename SK::Circle_3, typename SK::Circular_arc_3)
>::type result_type;
typedef std::vector<typename boost::result_of<
typedef std::vector<typename cpp11::result_of<
typename SK::Intersect_3(typename SK::Circle_3, typename SK::Circle_3)
>::type > solutions_container;
typedef std::pair<Circular_arc_point_3, unsigned> Solution;
@ -159,12 +159,12 @@ namespace CGAL {
const typename SK::Circular_arc_3 & c,
OutputIterator res)
{
typedef typename boost::result_of<
typedef typename cpp11::result_of<
typename SK::Intersect_3(typename SK::Sphere_3, typename SK::Circular_arc_3)
>::type result_type;
typedef typename SK::Circular_arc_point_3 Circular_arc_point_3;
typedef std::vector<typename boost::result_of<
typedef std::vector<typename cpp11::result_of<
typename SK::Intersect_3(typename SK::Circle_3, typename SK::Sphere_3)>::type
> solutions_container;
typedef std::pair<Circular_arc_point_3, unsigned> Solution;
@ -199,13 +199,13 @@ namespace CGAL {
const typename SK::Circular_arc_3 & ca,
OutputIterator res)
{
typedef typename boost::result_of<
typedef typename cpp11::result_of<
typename SK::Intersect_3(typename SK::Plane_3, typename SK::Circular_arc_3)
>::type result_type;
typedef typename SK::Point_3 Point_3;
typedef typename SK::Circular_arc_point_3 Circular_arc_point_3;
typedef std::vector<
typename boost::result_of<typename SK::Intersect_3(typename SK::Circle_3, typename SK::Plane_3)>::type
typename cpp11::result_of<typename SK::Intersect_3(typename SK::Circle_3, typename SK::Plane_3)>::type
> solutions_container;
typedef std::pair<Circular_arc_point_3, unsigned> Solution;
@ -240,7 +240,7 @@ namespace CGAL {
{
typedef typename SK::Circular_arc_point_3 Circular_arc_point_3;
typedef std::vector<
typename boost::result_of<typename SK::Intersect_3(typename SK::Line_3, typename SK::Line_3)>::type>
typename cpp11::result_of<typename SK::Intersect_3(typename SK::Line_3, typename SK::Line_3)>::type>
solutions_container;
typedef std::pair<Circular_arc_point_3, unsigned> Solution;
@ -273,12 +273,12 @@ namespace CGAL {
const typename SK::Circular_arc_3 & a2,
OutputIterator res)
{
typedef typename boost::result_of<
typedef typename cpp11::result_of<
typename SK::Intersect_3(typename SK::Circular_arc_3, typename SK::Circular_arc_3)
>::type result_type;
typedef typename SK::Circular_arc_point_3 Circular_arc_point_3;
typedef typename SK::Circular_arc_3 Circular_arc_3;
typedef std::vector< typename boost::result_of<
typedef std::vector< typename cpp11::result_of<
typename SK::Intersect_3(typename SK::Circle_3, typename SK::Circle_3 )
>::type> solutions_container;
@ -427,7 +427,7 @@ namespace CGAL {
typename SK::FT z_coord=extremal_points_z_coordinate<SK>(arc.supporting_circle(),sphere);
typename SK::Plane_3 plane(0,0,1,-z_coord);
std::vector<typename boost::result_of<
std::vector<typename cpp11::result_of<
typename SK::Intersect_3(typename SK::Plane_3,
typename SK::Circular_arc_3)>::type>
inters;
@ -482,7 +482,7 @@ namespace CGAL {
case NORMAL:{
typename SK::FT z_coord=extremal_points_z_coordinate<SK>(arc.supporting_circle(),sphere);
typename SK::Plane_3 plane(0,0,1,-z_coord);
std::vector<typename boost::result_of<
std::vector<typename cpp11::result_of<
typename SK::Intersect_3(typename SK::Plane_3, typename SK::Circular_arc_3 )>::type
> inters;
@ -609,7 +609,7 @@ namespace CGAL {
{
typename SK::Plane_3 plane(sphere.center(),sphere.center()+m,sphere.center()+typename SK::Vector_3(0,0,1));
std::vector<typename boost::result_of<
std::vector<typename cpp11::result_of<
typename SK::Intersect_3(typename SK::Plane_3, typename SK::Circular_arc_3)
>::type> inters;
intersect_3<SK>(plane,arc,std::back_inserter(inters));

View File

@ -86,9 +86,9 @@ namespace CGAL {
typedef typename SK::Circular_arc_point_3 Circular_arc_point_3;
typedef typename SK::Line_3 Line_3;
typedef typename SK::Line_arc_3 Line_arc_3;
typedef typename boost::result_of<typename SK::Intersect_3(Line_arc_3, Line_arc_3)>::type result_type;
typedef typename cpp11::result_of<typename SK::Intersect_3(Line_arc_3, Line_arc_3)>::type result_type;
typename boost::result_of<typename SK::Intersect_3(Line_3, Line_3)>::type o =
typename cpp11::result_of<typename SK::Intersect_3(Line_3, Line_3)>::type o =
SK().intersect_3_object()(l1.supporting_line(),
l2.supporting_line());
@ -153,9 +153,9 @@ namespace CGAL {
typedef typename SK::Circular_arc_point_3 Circular_arc_point_3;
typedef typename SK::Line_3 Line_3;
typedef typename SK::Line_arc_3 Line_arc_3;
typedef typename boost::result_of<typename SK::Intersect_3(Line_3, Line_arc_3)>::type result_type;
typedef typename cpp11::result_of<typename SK::Intersect_3(Line_3, Line_arc_3)>::type result_type;
typename boost::result_of<typename SK::Intersect_3(Line_3, Line_3)>::type o =
typename cpp11::result_of<typename SK::Intersect_3(Line_3, Line_3)>::type o =
SK().intersect_3_object()(l, la.supporting_line());
if(!o)
@ -180,10 +180,10 @@ namespace CGAL {
{
typedef typename SK::Circular_arc_point_3 Circular_arc_point_3;
typedef std::vector<
typename boost::result_of<typename SK::Intersect_3(typename SK::Line_3, typename SK::Circle_3)
typename cpp11::result_of<typename SK::Intersect_3(typename SK::Line_3, typename SK::Circle_3)
>::type> solutions_container;
typedef std::pair<Circular_arc_point_3, unsigned> Solution;
typedef typename boost::result_of<
typedef typename cpp11::result_of<
typename SK::Intersect_3(typename SK::Circle_3, typename SK::Line_arc_3)>::type result_type;
solutions_container solutions;
@ -213,7 +213,7 @@ namespace CGAL {
OutputIterator res)
{
typedef typename SK::Circular_arc_point_3 Circular_arc_point_3;
typedef std::vector<typename boost::result_of<
typedef std::vector<typename cpp11::result_of<
typename SK::Intersect_3(typename SK::Line_3,
typename SK::Sphere_3)>::type > solutions_container;
typedef std::pair<Circular_arc_point_3, unsigned> Solution;
@ -248,7 +248,7 @@ namespace CGAL {
*res++ = result_type(l);
}
const Point_3* sol;
typename boost::result_of<typename SK::Intersect_3(typename SK::Plane_3, typename SK::Line_3)>
typename cpp11::result_of<typename SK::Intersect_3(typename SK::Plane_3, typename SK::Line_3)>
::type o = SK().intersect_3_object()(p,l.supporting_line());
if(!o)

View File

@ -244,7 +244,7 @@ namespace CGAL {
const typename SK::Line_3 & l,
OutputIterator res)
{
typedef typename boost::result_of<typename SK::Intersect_3(typename SK::Sphere_3, typename SK::Line_3)>
typedef typename cpp11::result_of<typename SK::Intersect_3(typename SK::Sphere_3, typename SK::Line_3)>
::type result_type;
typedef typename SK::Algebraic_kernel Algebraic_kernel;
typedef typename SK::Polynomial_for_spheres_2_3 Equation_sphere;
@ -280,7 +280,7 @@ namespace CGAL {
typedef typename SK::Sphere_3 Sphere_3;
typedef typename SK::Plane_3 Plane_3;
typedef typename SK::Algebraic_kernel Algebraic_kernel;
typedef typename boost::result_of<
typedef typename cpp11::result_of<
typename SK::Intersect_3(Sphere_3, Sphere_3, Sphere_3)
>::type result_type;
@ -296,7 +296,7 @@ namespace CGAL {
return res;
}
if(non_oriented_equal<SK>(s1,s2)) {
if(typename boost::result_of<typename SK::Intersect_3(Sphere_3, Sphere_3)>::type v =
if(typename cpp11::result_of<typename SK::Intersect_3(Sphere_3, Sphere_3)>::type v =
SK().intersect_3_object()(s1, s3)) {
#if CGAL_INTERSECTION_VERSION < 2
if( const Point_3* p = object_cast<Point_3>(&v) )
@ -312,7 +312,7 @@ namespace CGAL {
return res;
}
if(non_oriented_equal<SK>(s1,s3) || non_oriented_equal<SK>(s2,s3)) {
if(typename boost::result_of<typename SK::Intersect_3(Sphere_3, Sphere_3)>::type v =
if(typename cpp11::result_of<typename SK::Intersect_3(Sphere_3, Sphere_3)>::type v =
SK().intersect_3_object()(s1, s2)) {
#if CGAL_INTERSECTION_VERSION < 2
if( const Point_3* p = object_cast<Point_3>(&v) )
@ -329,7 +329,7 @@ namespace CGAL {
return res;
}
if(SK().collinear_3_object()(s1.center(),s2.center(),s3.center())) {
typename boost::result_of<typename SK::Intersect_3(Sphere_3, Sphere_3)>::type v =
typename cpp11::result_of<typename SK::Intersect_3(Sphere_3, Sphere_3)>::type v =
SK().intersect_3_object()(s1, s2);
if(!v) return res;
if(const Point_3* p = CGAL::internal::intersect_get<Point_3>(v)) {
@ -385,7 +385,7 @@ namespace CGAL {
CGAL_kernel_precondition(!s1.is_degenerate());
CGAL_kernel_precondition(!s2.is_degenerate());
if(non_oriented_equal<SK>(s1,s2)) {
if(typename boost::result_of<typename SK::Intersect_3(Plane_3, Sphere_3)>::type v =
if(typename cpp11::result_of<typename SK::Intersect_3(Plane_3, Sphere_3)>::type v =
SK().intersect_3_object()(p, s1)) {
#if CGAL_INTERSECTION_VERSION < 2
if( const typename SK::Point_3* p = CGAL::object_cast<typename SK::Point_3>(&v) )
@ -403,7 +403,7 @@ namespace CGAL {
}
Plane_3 radical_p = SK().construct_radical_plane_3_object()(s1,s2);
if(non_oriented_equal<SK>(p,radical_p)) {
if(typename boost::result_of<typename SK::Intersect_3(Plane_3, Sphere_3)>::type v =
if(typename cpp11::result_of<typename SK::Intersect_3(Plane_3, Sphere_3)>::type v =
SK().intersect_3_object()(p, s1)) {
#if CGAL_INTERSECTION_VERSION < 2
if( const typename SK::Point_3* p = CGAL::object_cast<typename SK::Point_3>(&v) )
@ -449,7 +449,7 @@ namespace CGAL {
CGAL_kernel_precondition(!p2.is_degenerate());
CGAL_kernel_precondition(!s.is_degenerate());
if(non_oriented_equal<SK>(p1,p2)) {
if(typename boost::result_of<typename SK::Intersect_3(Plane_3, Sphere_3)>::type v =
if(typename cpp11::result_of<typename SK::Intersect_3(Plane_3, Sphere_3)>::type v =
SK().intersect_3_object()(p1, s)) {
#if CGAL_INTERSECTION_VERSION < 2
if( const typename SK::Point_3* p = CGAL::object_cast<typename SK::Point_3>(&v) )
@ -505,7 +505,7 @@ namespace CGAL {
typedef typename SK::Algebraic_kernel Algebraic_kernel;
typedef typename SK::Circle_3 Circle_3;
typedef typename boost::result_of<typename SK::Intersect_3(Circle_3, Circle_3)>
typedef typename cpp11::result_of<typename SK::Intersect_3(Circle_3, Circle_3)>
::type result_type;
if(non_oriented_equal<SK>(c1,c2)) {
@ -533,7 +533,7 @@ namespace CGAL {
typedef typename SK::Polynomials_for_line_3 Equation_line;
typedef typename SK::Circle_3 Circle_3;
typedef typename boost::result_of<typename SK::Intersect_3(Circle_3, typename SK::Line_3)>
typedef typename cpp11::result_of<typename SK::Intersect_3(Circle_3, typename SK::Line_3)>
::type result_type;
typedef typename SK::Algebraic_kernel Algebraic_kernel;

View File

@ -1477,13 +1477,13 @@ struct Lazy_construction_variant {
typedef typename LK::E2A E2A;
template <typename L1, typename L2>
typename boost::result_of<Lazy_construction_variant(L1, L2)>::type
typename cpp11::result_of<Lazy_construction_variant(L1, L2)>::type
operator()(const L1& l1, const L2& l2) const {
typedef typename boost::result_of<Lazy_construction_variant(L1, L2)>::type result_type;
typedef typename cpp11::result_of<Lazy_construction_variant(L1, L2)>::type result_type;
typedef typename boost::result_of<AC(typename Type_mapper<L1, LK, AK>::type,
typedef typename cpp11::result_of<AC(typename Type_mapper<L1, LK, AK>::type,
typename Type_mapper<L2, LK, AK>::type)>::type AT;
typedef typename boost::result_of<EC(typename Type_mapper<L1, LK, EK>::type,
typedef typename cpp11::result_of<EC(typename Type_mapper<L1, LK, EK>::type,
typename Type_mapper<L2, LK, EK>::type)>::type ET;
CGAL_BRANCH_PROFILER(std::string(" failures/calls to : ") + std::string(CGAL_PRETTY_FUNCTION), tmp);
@ -1525,14 +1525,14 @@ struct Lazy_construction_variant {
}
template <typename L1, typename L2, typename L3>
typename boost::result_of<Lazy_construction_variant(L1, L2, L3)>::type
typename cpp11::result_of<Lazy_construction_variant(L1, L2, L3)>::type
operator()(const L1& l1, const L2& l2, const L3& l3) const {
typedef typename boost::result_of<Lazy_construction_variant(L1, L2, L3)>::type result_type;
typedef typename cpp11::result_of<Lazy_construction_variant(L1, L2, L3)>::type result_type;
typedef typename boost::result_of<AC(typename Type_mapper<L1, LK, AK>::type,
typedef typename cpp11::result_of<AC(typename Type_mapper<L1, LK, AK>::type,
typename Type_mapper<L2, LK, AK>::type,
typename Type_mapper<L3, LK, AK>::type)>::type AT;
typedef typename boost::result_of<EC(typename Type_mapper<L1, LK, EK>::type,
typedef typename cpp11::result_of<EC(typename Type_mapper<L1, LK, EK>::type,
typename Type_mapper<L2, LK, EK>::type,
typename Type_mapper<L3, LK, EK>::type)>::type ET;
@ -1582,7 +1582,7 @@ struct Lazy_construction_variant {
struct result<F( BOOST_PP_ENUM_PARAMS(n, T) )> { \
BOOST_PP_REPEAT(n, CGAL_TYPEMAP_AC, T) \
typedef typename Type_mapper< \
typename boost::result_of<AC( BOOST_PP_ENUM_PARAMS(n, A) )>::type, AK, LK>::type type; \
typename cpp11::result_of<AC( BOOST_PP_ENUM_PARAMS(n, A) )>::type, AK, LK>::type type; \
};
BOOST_PP_REPEAT_FROM_TO(1, 9, CGAL_RESULT, _)

View File

@ -69,13 +69,13 @@
#define CGAL_INTERSECTION_FUNCTION(A, B, DIM) \
template<typename K> \
inline \
typename boost::result_of<BOOST_PP_CAT(typename K::Intersect_, DIM)(typename K::A, typename K::B)>::type \
typename cpp11::result_of<BOOST_PP_CAT(typename K::Intersect_, DIM)(typename K::A, typename K::B)>::type \
intersection(const A<K>& a, const B<K>& b) { \
return BOOST_PP_CAT(K().intersect_, BOOST_PP_CAT(DIM, _object()(a, b))); \
} \
template<typename K> \
inline \
typename boost::result_of<BOOST_PP_CAT(typename K::Intersect_, DIM)(typename K::A, typename K::B)>::type \
typename cpp11::result_of<BOOST_PP_CAT(typename K::Intersect_, DIM)(typename K::A, typename K::B)>::type \
intersection(const B<K>& a, const A<K>& b) { \
return BOOST_PP_CAT(K().intersect_, BOOST_PP_CAT(DIM, _object()(a, b))); \
}
@ -83,7 +83,7 @@
#define CGAL_INTERSECTION_FUNCTION_SELF(A, DIM) \
template<typename K> \
inline \
typename boost::result_of<BOOST_PP_CAT(typename K::Intersect_, DIM)(typename K::A, typename K::A)>::type \
typename cpp11::result_of<BOOST_PP_CAT(typename K::Intersect_, DIM)(typename K::A, typename K::A)>::type \
intersection(const A<K> & a, const A<K> & b) { \
return BOOST_PP_CAT(K().intersect_, BOOST_PP_CAT(DIM, _object()(a, b))); \
}
@ -167,16 +167,16 @@ namespace internal {
#else
#if defined(CGAL_CFG_NO_CPP0X_RVALUE_REFERENCE)
template<typename F, typename A, typename B, typename T>
inline typename boost::result_of<F(A, B)>::type
intersection_return(const T& t) { return typename boost::result_of<F(A, B)>::type(t); }
inline typename cpp11::result_of<F(A, B)>::type
intersection_return(const T& t) { return typename cpp11::result_of<F(A, B)>::type(t); }
#else
template<typename F, typename A, typename B, typename T>
inline typename boost::result_of<F(A, B)>::type
intersection_return(T&& t) { return typename boost::result_of<F(A, B)>::type(std::forward<T>(t)); }
inline typename cpp11::result_of<F(A, B)>::type
intersection_return(T&& t) { return typename cpp11::result_of<F(A, B)>::type(std::forward<T>(t)); }
#endif // CGAL_CFG_NO_CPP0X_RVALUE_REFERENCE
template<typename F, typename A, typename B>
inline typename boost::result_of<F(A, B)>::type
intersection_return() { return typename boost::result_of<F(A, B)>::type(); }
inline typename cpp11::result_of<F(A, B)>::type
intersection_return() { return typename cpp11::result_of<F(A, B)>::type(); }
#endif // CGAL_INTERSECTION_VERSION < 2
// Something similar to wrap around boost::get and object_cast to
@ -203,14 +203,14 @@ const T* intersect_get(const boost::variant<BOOST_VARIANT_ENUM_PARAMS(U)> & v) {
}
template<typename A, typename B>
typename boost::result_of<typename CGAL::Kernel_traits<A>::Kernel::Intersect_2(A, B)>::type
typename cpp11::result_of<typename CGAL::Kernel_traits<A>::Kernel::Intersect_2(A, B)>::type
intersection_impl(const A& a, const B& b, CGAL::Dimension_tag<2>) {
typedef typename CGAL::Kernel_traits<A>::Kernel Kernel;
return Kernel().intersect_2_object()(a, b);
}
template<typename A, typename B>
typename boost::result_of<typename CGAL::Kernel_traits<A>::Kernel::Intersect_3(A, B)>::type
typename cpp11::result_of<typename CGAL::Kernel_traits<A>::Kernel::Intersect_3(A, B)>::type
intersection_impl(const A& a, const B& b, Dimension_tag<3>) {
typedef typename CGAL::Kernel_traits<A>::Kernel Kernel;
return Kernel().intersect_3_object()(a, b);

View File

@ -37,7 +37,7 @@ inline
#if CGAL_INTERSECTION_VERSION < 2
CGAL::Object
#else
typename boost::result_of<typename K::Intersect_3(typename K::Plane_3, typename K::Plane_3, typename K::Plane_3)>::type
typename cpp11::result_of<typename K::Intersect_3(typename K::Plane_3, typename K::Plane_3, typename K::Plane_3)>::type
#endif
intersection(const Plane_3<K> &plane1, const Plane_3<K> &plane2,
const Plane_3<K> &plane3)
@ -84,7 +84,7 @@ CGAL_INTERSECTION_FUNCTION(Plane_3, Triangle_3, 3)
template <class K>
inline typename
boost::result_of<typename K::Intersect_3(typename K::Line_3, Bbox_3)>::type
cpp11::result_of<typename K::Intersect_3(typename K::Line_3, Bbox_3)>::type
intersection(const Line_3<K> &a,
const Bbox_3 &b) {
return K().intersect_3_object()(a, b);
@ -92,7 +92,7 @@ intersection(const Line_3<K> &a,
template <class K>
inline typename
boost::result_of<typename K::Intersect_3(typename K::Line_3, Bbox_3)>::type
cpp11::result_of<typename K::Intersect_3(typename K::Line_3, Bbox_3)>::type
intersection(const Bbox_3 &a,
const Line_3<K> &b) {
return K().intersect_3_object()(a, b);
@ -100,7 +100,7 @@ intersection(const Bbox_3 &a,
template <class K>
inline typename
boost::result_of<typename K::Intersect_3(typename K::Ray_3, Bbox_3)>::type
cpp11::result_of<typename K::Intersect_3(typename K::Ray_3, Bbox_3)>::type
intersection(const Ray_3<K> &a,
const Bbox_3 &b) {
return K().intersect_3_object()(a, b);
@ -108,7 +108,7 @@ intersection(const Ray_3<K> &a,
template <class K>
inline typename
boost::result_of<typename K::Intersect_3(typename K::Ray_3, Bbox_3)>::type
cpp11::result_of<typename K::Intersect_3(typename K::Ray_3, Bbox_3)>::type
intersection(const Bbox_3 &a,
const Ray_3<K> &b) {
return K().intersect_3_object()(a, b);
@ -116,7 +116,7 @@ intersection(const Bbox_3 &a,
template <class K>
inline typename
boost::result_of<typename K::Intersect_3(typename K::Segment_3, Bbox_3)>::type
cpp11::result_of<typename K::Intersect_3(typename K::Segment_3, Bbox_3)>::type
intersection(const Segment_3<K> &a,
const Bbox_3 &b) {
return K().intersect_3_object()(a, b);
@ -124,7 +124,7 @@ intersection(const Segment_3<K> &a,
template <class K>
inline typename
boost::result_of<typename K::Intersect_3(typename K::Segment_3, Bbox_3)>::type
cpp11::result_of<typename K::Intersect_3(typename K::Segment_3, Bbox_3)>::type
intersection(const Bbox_3 &a,
const Segment_3<K> &b) {
return K().intersect_3_object()(a, b);

View File

@ -26,9 +26,9 @@ typedef CGAL::Bbox_3 Bbox_3;
template<class A, class B>
void call_intersection_global(const A& a, const B& b) {
typename boost::result_of<K::Intersect_3(A, B)>::type x = CGAL::intersection(a, b);
typename boost::result_of<K::Intersect_3(A, B)>::type y = CGAL::intersection(b, a);
typename boost::result_of<K::Intersect_3(B, A)>::type z = CGAL::intersection(b, a);
typename cpp11::result_of<K::Intersect_3(A, B)>::type x = CGAL::intersection(a, b);
typename cpp11::result_of<K::Intersect_3(A, B)>::type y = CGAL::intersection(b, a);
typename cpp11::result_of<K::Intersect_3(B, A)>::type z = CGAL::intersection(b, a);
CGAL_USE(x);
CGAL_USE(y);
CGAL_USE(z);
@ -43,8 +43,8 @@ void call_do_intersect_global(const A& a, const B& b) {
template<class A, class B, class K>
void call_intersection_with_kernel(const A& a, const B& b, const K&) {
typedef typename K::Intersect_3 Intersect;
typename boost::result_of<Intersect(A, B)>::type x = Intersect()(a, b);
typename boost::result_of<Intersect(A, B)>::type y = Intersect()(b, a);
typename cpp11::result_of<Intersect(A, B)>::type x = Intersect()(a, b);
typename cpp11::result_of<Intersect(A, B)>::type y = Intersect()(b, a);
}
template<class A, class B, class K>
@ -80,7 +80,7 @@ int main()
// call_intersection_global(Pl(), Cub());
// special
boost::result_of<K::Intersect_3(Pl, Pl, Pl)>::type plplpl = CGAL::intersection(Pl(), Pl(), Pl());
cpp11::result_of<K::Intersect_3(Pl, Pl, Pl)>::type plplpl = CGAL::intersection(Pl(), Pl(), Pl());
call_intersection_global(Tr(), S());
call_intersection_global(Tr(), L());

View File

@ -48,7 +48,7 @@ with `Dispatch_output_iterator`.
Since both the number of intersections, if any, and their types, depend
on the arguments, the function expects an output iterator on
`boost::result_of<K::Intersect_2(Type1, Type2)>::%type`, as
`cpp11::result_of<K::Intersect_2(Type1, Type2)>::%type`, as
presented below.
*/

View File

@ -59,7 +59,7 @@ with `Dispatch_output_iterator`.
Since both the number of intersections, if any, and their types, depend
on the arguments, the function expects an output iterator on
`boost::result_of<Kernel::Intersect_3(Type1, Type2)>::%type`,
`cpp11::result_of<Kernel::Intersect_3(Type1, Type2)>::%type`,
as presented below.
*/
/// @{

View File

@ -133,8 +133,8 @@ depending on the arguments.
The following table gives the possible values for `Type1` and `Type2`
and the resulting return types `T...` in `boost::optional< boost::variant< T... > >`.
The resulting return type can be obtained through
`boost::result_of<Kernel::Intersect_2(A, B)>::%type` or
`boost::result_of<Kernel::Intersect_3(A, B)>::%type`.
`cpp11::result_of<Kernel::Intersect_2(A, B)>::%type` or
`cpp11::result_of<Kernel::Intersect_3(A, B)>::%type`.
<DIV ALIGN="CENTER">
<TABLE CELLPADDING=3 BORDER="1">
@ -340,7 +340,7 @@ void foo(const Segment_2<R>& seg, const Line_2<R>& lin)
// auto result = intersection(seg, lin);
// without C++11
boost::result_of<R::Intersect_2(Segment_2<R>, Line_2<R>)>::type
cpp11::result_of<R::Intersect_2(Segment_2<R>, Line_2<R>)>::type
result = intersection(seg, lin);
if(result) { boost::apply_visitor(Intersection_visitor(), *result); }
@ -368,7 +368,7 @@ a standard library algorithm.
*/
template <typename Kernel>
boost::result_of<Kernel::Intersect_23(Type1, Type2)>::type
cpp11::result_of<Kernel::Intersect_23(Type1, Type2)>::type
intersection(Type1<Kernel> obj1, Type2<Kernel> obj2);
/*!

View File

@ -7639,7 +7639,7 @@ public:
\cgalRefines `AdaptableFunctor` (with two arguments)
\sa `CGAL::intersection`
\sa <a HREF="http://www.boost.org/libs/utility/utility.htm#result_of">`boost::result_of`</A>
\sa <a HREF="http://www.boost.org/libs/utility/utility.htm#result_of">`cpp11::result_of`</A>
*/
class Intersect_2 {
@ -7654,7 +7654,7 @@ public:
`Type1` and `Type2`, for all pairs `Type1` and `Type2`.
For details see the reference manual page for `intersection()`.
*/
boost::result_of<Kernel::Intersect_2(Type1, Type2)>::type
cpp11::result_of<Kernel::Intersect_2(Type1, Type2)>::type
operator()(Type1 obj1, Type2 obj2);
/// @}
@ -7668,7 +7668,7 @@ public:
\cgalRefines `AdaptableFunctor` (with two or three arguments)
\sa `CGAL::intersection`
\sa <a HREF="http://www.boost.org/libs/utility/utility.htm#result_of">`boost::result_of`</A>
\sa <a HREF="http://www.boost.org/libs/utility/utility.htm#result_of">`cpp11::result_of`</A>
*/
class Intersect_3 {
@ -7683,7 +7683,7 @@ public:
objects of type `Type1` and `Type2`.
For details see the reference manual page for `intersection()`.
*/
boost::result_of<Kernel::Intersect_3(Type1, Type2)>::type
cpp11::result_of<Kernel::Intersect_3(Type1, Type2)>::type
operator()(Type1 obj1, Type2 obj2);

View File

@ -493,11 +493,11 @@ in a type-safe way \cgal uses return values of type
`boost::optional< boost::variant< T \ldots\ > >` were `T...` is a
list of all possible resulting geometric objects. The exact result
type of an intersection can be determined through the metafunction
`boost::result_of<Kernel::Intersect_2(Type1, Type2)>` or
`boost::result_of<Kernel::Intersect_3(Type1, Type2)>`, where
`cpp11::result_of<Kernel::Intersect_2(Type1, Type2)>` or
`cpp11::result_of<Kernel::Intersect_3(Type1, Type2)>`, where
`Type1` and `Type2` are the types of the objects used in the
intersection computation. See
<A HREF="http://www.boost.org/libs/utility/utility.htm#result_of">`boost::result_of`</A>
<A HREF="http://www.boost.org/libs/utility/utility.htm#result_of">`cpp11::result_of`</A>
for more details about this mechanism.
@ -523,7 +523,7 @@ std::cin >> segment_1 >> segment_2;
// auto v = intersection(segment_1, segment_2);
/* C++03 */
boost::result_of<K::Intersect_2(Segment_2, Segment_2)>::type
cpp11::result_of<K::Intersect_2(Segment_2, Segment_2)>::type
v = intersection(segment_1, segment_2);
if(v) {
/* not empty */

View File

@ -68,8 +68,8 @@ in a type safe way {\cgal} uses return values of type
\ccStyle{boost::optional< boost::variant< T \ldots\ > >} were T... is a
list of all possible resulting geometric objects. The exact result
type of an intersection can be determined through the metafunction
\ccc{boost::result_of<Kernel::Intersect_2(Type1, Type2)>} or
\ccc{boost::result_of<Kernel::Intersect_3(Type1, Type2)>}, where
\ccc{cpp11::result_of<Kernel::Intersect_2(Type1, Type2)>} or
\ccc{cpp11::result_of<Kernel::Intersect_3(Type1, Type2)>}, where
\ccc{Type1} and \ccc{Type2} are the types of the objects used in the
intersection computation. See
\ccAnchor{http://www.boost.org/libs/utility/utility.htm#result_of}{boost::result\_of}
@ -95,7 +95,7 @@ value for the \ccHtmlNoLinksFrom{intersection} computation:
auto v = intersection(segment_1, segment_2);
/* C++03 */
/*boost::result_of<K::Intersect_2(Segment_2, Segment_2)>::type */
/*cpp11::result_of<K::Intersect_2(Segment_2, Segment_2)>::type */
/* v = intersection(segment_1, segment_2); */
if(v) {
/* not empty */

View File

@ -4,7 +4,7 @@ A model for this must provide
\ccCreationVariable{fo}
\ccMemberFunction{typename
boost::result_of<Kernel::Intersect_2(Type1, Type2)>::type operator()(Type1 obj1, Type2 obj2);}
cpp11::result_of<Kernel::Intersect_2(Type1, Type2)>::type operator()(Type1 obj1, Type2 obj2);}
{computes the \ccHtmlNoLinksFrom{intersection} region of two geometrical objects of type
\ccStyle{Type1} and \ccStyle{Type2}}

View File

@ -3,10 +3,10 @@ A model for this must provide
\ccCreationVariable{fo}
\ccMemberFunction{boost::result_of<Kernel::Intersect_2(Type1, Type2)>::type operator()(Type1 obj1, Type2 obj2);}
\ccMemberFunction{cpp11::result_of<Kernel::Intersect_2(Type1, Type2)>::type operator()(Type1 obj1, Type2 obj2);}
{computes the \ccHtmlNoLinksFrom{intersection} region of \ccStyle{obj1} and \ccStyle{obj2}}
\ccMemberFunction{boost::result_of<Kernel::Intersect_2(Plane_3, Plane_3, Plane_3)>::type operator()(
\ccMemberFunction{cpp11::result_of<Kernel::Intersect_2(Plane_3, Plane_3, Plane_3)>::type operator()(
Plane_3 p1, Plane_3 p2, Plane_3 p3);}
{computes the \ccHtmlNoLinksFrom{intersection} region of \ccStyle{p1}, \ccStyle{p2} and \ccStyle{p3}}

View File

@ -22,7 +22,7 @@ the macro \ccc{CGAL_INTERSECTION_VERSION} must be defined to
\ccUnchecked{
\ccRefLabel{Kernel::intersection}
\ccFunction{boost::result_of<Intersect_23(Type1, Type2)>::type intersection(Type1 obj1, Type2 obj2);}
\ccFunction{cpp11::result_of<Intersect_23(Type1, Type2)>::type intersection(Type1 obj1, Type2 obj2);}
{Two objects \ccStyle{obj1} and \ccStyle{obj2} intersect if there is a point
\ccStyle{p} that is part of both \ccStyle{obj1} and \ccStyle{obj2}.
The \ccHtmlNoLinksFrom{intersection} region of those two objects is defined as the set of all
@ -40,8 +40,8 @@ The same functionality is also available through the functors
The possible values for types \ccStyle{Type1} and \ccStyle{Type2} and
the value for T\ldots in \ccStyle{boost::optional< boost::variant<
T\ldots > >} are the following and can be obtained through
\ccStyle{boost::result_of(Intersect_2(A, B)>::type} or
\ccStyle{boost::result_of(Intersect_3(A, B)>::type}.
\ccStyle{cpp11::result_of(Intersect_2(A, B)>::type} or
\ccStyle{cpp11::result_of(Intersect_3(A, B)>::type}.
\begin{ccTexOnly}
\begin{longtable}[c]{|l|l|l|}
@ -534,7 +534,7 @@ with \ccc{CGAL::Dispatch_output_iterator<V,O>}.
Since both the number of intersections, if any, and their type, depend
on the arguments, the function expects an output iterator on
\ccStyle{boost::result_of<K::Intersect_2(Type1, Type2)>::type}, as
\ccStyle{cpp11::result_of<K::Intersect_2(Type1, Type2)>::type}, as
presented below.
\ccFunction{template < class OutputIterator >
@ -582,7 +582,7 @@ with \ccc{CGAL::Dispatch_output_iterator<V,O>}.
Since both the number of intersections, if any, and their type, depend
on the arguments, the functions expects an output iterator on
\ccStyle{boost::result_of<Kernel::Intersect_3(Type1, Type2)>::type},
\ccStyle{cpp11::result_of<Kernel::Intersect_3(Type1, Type2)>::type},
as presented below.
The \textbf{first function} is:
@ -676,7 +676,7 @@ void foo(const Segment_2<R>& seg, const Line_2<R>& lin)
auto result = intersection(seg, lin);
// without C++11
// boost::result_of<R::Intersect_2(Segment_2<R>, Line_2<R>)>::type
// cpp11::result_of<R::Intersect_2(Segment_2<R>, Line_2<R>)>::type
// result = intersection(seg, lin);
if(result) { boost::apply_visitor(Intersection_visitor(), *result); }

View File

@ -56,7 +56,7 @@ int main()
K::Intersect_2 intersection;
boost::result_of<K::Intersect_2(Segment, Segment)>::type
cpp11::result_of<K::Intersect_2(Segment, Segment)>::type
intersect = intersection(s1, s2);
K::Construct_cartesian_const_iterator_2 construct_it;

View File

@ -25,7 +25,7 @@ int main(){
EK::Triangle_3 t2=to_exact(t1);
EK::Line_3 l2=to_exact(l1);
boost::result_of<EK::Intersect_3(EK::Triangle_3, EK::Line_3)>::type
cpp11::result_of<EK::Intersect_3(EK::Triangle_3, EK::Line_3)>::type
inter = CGAL::intersection(t2,l2);
// As we are sure that there IS an intersection

View File

@ -2539,7 +2539,7 @@ namespace CommonKernelFunctors {
// 25 possibilities, so I keep the template.
template <class T1, class T2>
typename boost::result_of< Intersect_2(T1, T2) >::type
typename cpp11::result_of< Intersect_2(T1, T2) >::type
operator()(const T1& t1, const T2& t2) const
{ return internal::intersection(t1, t2, K()); }
};
@ -2572,7 +2572,7 @@ namespace CommonKernelFunctors {
// n possibilities, so I keep the template.
template <class T1, class T2>
typename boost::result_of< Intersect_3(T1, T2) >::type
typename cpp11::result_of< Intersect_3(T1, T2) >::type
operator()(const T1& t1, const T2& t2) const
{ return internal::intersection(t1, t2, K() ); }

View File

@ -46,7 +46,7 @@
// Unfortunately this test is only an approximation. At this point
// boost::result_of behaves as C++11 result_of and we cannot force it
// cpp11::result_of behaves as C++11 result_of and we cannot force it
// back into an old mode thanks to the include guards. We instead use
// a TR1 implementation of result_of to compare the types. This is the
// best we can go for.
@ -82,7 +82,7 @@ namespace CGAL {
// This functor can wrap any DefaultConstructible functor. Iff there
// is a result_type typedef it needs to be forwarded. In all other
// cases boost::result_of is necessary to determine the return type.
// cases cpp11::result_of is necessary to determine the return type.
template<typename F, bool result_type = result_of_kernel::has_result_type<F>::value >
struct AnyFunctor;
@ -98,7 +98,7 @@ namespace CGAL {
typedef typename F::result_type c03_return_type;
static_assert((result_of_kernel::Rep_equal<c11_return_type, c03_return_type>::value),
"Type difference between actual return type and boost::result_of<>::type");
"Type difference between actual return type and cpp11::result_of<>::type");
return f(std::forward<Args>(args)...);
}
@ -111,7 +111,7 @@ namespace CGAL {
template<typename Func, typename... Args>
struct result<Func(Args...)> {
typedef typename boost::result_of<F(Args...)>::type type;
typedef typename cpp11::result_of<F(Args...)>::type type;
};
// same as above
@ -130,7 +130,7 @@ namespace CGAL {
)>::type c03_return_type;
static_assert((result_of_kernel::Rep_equal<c11_return_type, c03_return_type>::value),
"Type difference between actual return type and boost::result_of<>::type");
"Type difference between actual return type and cpp11::result_of<>::type");
return f(std::forward<Args>(args)...);
}

View File

@ -36,7 +36,7 @@ The following table gives the possible values for `Type1` and `Type2`
and the resulting return types `T...` in `boost::optional< boost::variant< T... > >`.
The resulting return type can be obtained through
`boost::result_of(Kernel::Intersect_d(A, B)>::type`.
`cpp11::result_of(Kernel::Intersect_d(A, B)>::type`.
<DIV ALIGN="CENTER">
<TABLE CELLPADDING=3 BORDER="1">
@ -146,7 +146,7 @@ void foo(Segment_d<R> seg, Line_d<R> lin)
// auto result = intersection(seg, lin);
// without C++11 support
typename boost::result_of<R::Intersect_d(Segment_d<R>, Line_d<R>)>::type
typename cpp11::result_of<R::Intersect_d(Segment_d<R>, Line_d<R>)>::type
result = intersection(seg, lin);
if(result) { boost::apply_visitor(Intersection_visitor<R>(), *result); }
@ -160,7 +160,7 @@ void foo(Segment_d<R> seg, Line_d<R> lin)
\sa CGAL_INTERSECTION_VERSION
\sa <a HREF="http://www.boost.org/doc/libs/release/libs/optional/index.html">`boost::optional`</a>
\sa <a HREF="http://www.boost.org/doc/html/variant.html">`boost::variant`</a>
\sa <a HREF="http://www.boost.org/libs/utility/utility.htm#result_of">`boost::result_of`</a>
\sa <a HREF="http://www.boost.org/libs/utility/utility.htm#result_of">`cpp11::result_of`</a>
*/
Object intersection(Type1<R> f1, Type2<R> f2);

View File

@ -21,7 +21,7 @@ For a list of the possible return types, see `CGAL::intersection()`.
\pre `p` and `q` have the same dimension.
*/
template <class Type1, class Type2>
boost::result_of<Kernel::Intersect_d(Type1, Type2)>::type
cpp11::result_of<Kernel::Intersect_d(Type1, Type2)>::type
operator()(const Type1& p, const Type2& q);

View File

@ -439,10 +439,10 @@ returns a `boost::optional< boost::variant< T... > >`
where `T...` is a list of all possible resulting geometric objects.
The exact result type of an intersection can be determined by using
`boost::result_of<Kernel::Intersect_d(Type1, Type2)>::type`
`cpp11::result_of<Kernel::Intersect_d(Type1, Type2)>::type`
`where `Type1` and `Type2` are the types of the objects
used in the intersection query. See
<A HREF="http://www.boost.org/libs/utility/utility.htm#result_of">`boost::result_of`</A>
<A HREF="http://www.boost.org/libs/utility/utility.htm#result_of">`cpp11::result_of`</A>
for more information about this mechanism.
@ -459,7 +459,7 @@ typedef Segment_d<K> Segment;
Segment s1, s2;
std::cin >> s1 >> s2;
boost::result_of<K::Intersect_d(Segment, Segment)>::type
cpp11::result_of<K::Intersect_d(Segment, Segment)>::type
v = intersection(s1, s2);
if(v) {
// not empty

View File

@ -68,7 +68,7 @@ returns a \ccStyle{boost::optional< boost::variant< T \ldots\ > >}
were T\textellipsis\ is a list of all possible resulting geometric objects.
The exact result type of an intersection can be determined by using
\ccStyle{boost::result_of<Kernel::Intersect_d(Type1, Type2)>::type}
\ccStyle{cpp11::result_of<Kernel::Intersect_d(Type1, Type2)>::type}
where \ccStyle{Type1} and \ccStyle{Type2} are the types of the objects
used in the intersection query. See
\ccAnchor{http://www.boost.org/libs/utility/utility.htm#result_of}{boost::result\_of}
@ -83,7 +83,7 @@ for more information about this mechanism.
Segment s1, s2;
std::cin >> s1 >> s2;
boost::result_of<K::Intersect_d(Segment, Segment)>::type
cpp11::result_of<K::Intersect_d(Segment, Segment)>::type
v = intersection(s1, s2);
if(v) {
/* not empty */

View File

@ -3,7 +3,7 @@ A model for this must provide:
\ccCreationVariable{fo}
\ccMemberFunction{boost::result_of<Kernel::Intersect_d(Type1<K>, Type2<K>)>::type operator()(const Type1<K>& p, const Type2<K>& q);}
\ccMemberFunction{cpp11::result_of<Kernel::Intersect_d(Type1<K>, Type2<K>)>::type operator()(const Type1<K>& p, const Type2<K>& q);}
{returns the result of the intersection of $p$ and $q$ in form of a
polymorphic object. \ccc{Kernel_object} may be any of
\ccc{Kernel::Segment_d}, \ccc{Kernel::Ray_d}, \ccc{Kernel::Line_d},

View File

@ -166,7 +166,7 @@ void foo(Segment_d<R> seg, Line_d<R> lin)
auto result = intersection(seg, lin);
// without C++11 support
// typename boost::result_of<R::Intersect_d(Segment_d<R>, Line_d<R>)>::type
// typename cpp11::result_of<R::Intersect_d(Segment_d<R>, Line_d<R>)>::type
// result = intersection(seg, lin);
if(result) { boost::apply_visitor(Intersection_visitor<R>(), *result); }

View File

@ -215,7 +215,7 @@ public:
#endif
template <class T1, class T2>
typename boost::result_of<Intersect(T1, T2)>::type
typename cpp11::result_of<Intersect(T1, T2)>::type
operator()(const T1& t1, const T2& t2) const
{ return internal::intersection(t1, t2, R()); }
};

View File

@ -32,7 +32,7 @@ namespace CGAL {
namespace internal {
template <class R>
typename boost::result_of<typename R::Intersect_d(typename R::Line_d, typename R::Line_d)>::type
typename cpp11::result_of<typename R::Intersect_d(typename R::Line_d, typename R::Line_d)>::type
intersection(const typename R::Line_d& l1, const typename R::Line_d& l2, const R&)
{
typedef typename R::Line_d_Line_d_pair ll_pair;
@ -53,7 +53,7 @@ intersection(const typename R::Line_d& l1, const typename R::Line_d& l2, const R
}
template <class R>
typename boost::result_of<typename R::Intersect_d(typename R::Ray_d, typename R::Ray_d)>::type
typename cpp11::result_of<typename R::Intersect_d(typename R::Ray_d, typename R::Ray_d)>::type
intersection(const typename R::Ray_d& l1, const typename R::Ray_d& l2, const R&)
{
typedef typename R::Ray_d_Ray_d_pair ll_pair;
@ -82,7 +82,7 @@ intersection(const typename R::Ray_d& l1, const typename R::Ray_d& l2, const R&)
}
template <class R>
typename boost::result_of<typename R::Intersect_d(typename R::Segment_d, typename R::Segment_d)>::type
typename cpp11::result_of<typename R::Intersect_d(typename R::Segment_d, typename R::Segment_d)>::type
intersection(const typename R::Segment_d& l1, const typename R::Segment_d& l2, const R&)
{
typedef typename R::Segment_d_Segment_d_pair ll_pair;
@ -106,7 +106,7 @@ intersection(const typename R::Segment_d& l1, const typename R::Segment_d& l2, c
}
template <class R>
typename boost::result_of<typename R::Intersect_d(typename R::Line_d, typename R::Ray_d)>::type
typename cpp11::result_of<typename R::Intersect_d(typename R::Line_d, typename R::Ray_d)>::type
intersection(const typename R::Line_d& l, const typename R::Ray_d& r, const R&)
{
typedef typename R::Line_d_Ray_d_pair lr_pair;
@ -128,12 +128,12 @@ intersection(const typename R::Line_d& l, const typename R::Ray_d& r, const R&)
}
template <class R>
typename boost::result_of<typename R::Intersect_d(typename R::Ray_d, typename R::Line_d)>::type
typename cpp11::result_of<typename R::Intersect_d(typename R::Ray_d, typename R::Line_d)>::type
intersection(const typename R::Ray_d& r, const typename R::Line_d& l, const R& k)
{ return intersection(l,r,k); }
template <class R>
typename boost::result_of<typename R::Intersect_d(typename R::Ray_d, typename R::Segment_d)>::type
typename cpp11::result_of<typename R::Intersect_d(typename R::Ray_d, typename R::Segment_d)>::type
intersection(const typename R::Ray_d& r, const typename R::Segment_d& s, const R&)
{
typedef typename R::Ray_d_Segment_d_pair rs_pair;
@ -157,12 +157,12 @@ intersection(const typename R::Ray_d& r, const typename R::Segment_d& s, const R
}
template <class R>
typename boost::result_of<typename R::Intersect_d(typename R::Segment_d, typename R::Ray_d)>::type
typename cpp11::result_of<typename R::Intersect_d(typename R::Segment_d, typename R::Ray_d)>::type
intersection(const typename R::Segment_d& s, const typename R::Ray_d& r, const R& k)
{ return intersection(r,s, k); }
template <class R>
typename boost::result_of<typename R::Intersect_d(typename R::Line_d, typename R::Segment_d)>::type
typename cpp11::result_of<typename R::Intersect_d(typename R::Line_d, typename R::Segment_d)>::type
intersection(const typename R::Line_d& l, const typename R::Segment_d& s, const R&)
{
typedef typename R::Line_d_Segment_d_pair rs_pair;
@ -186,12 +186,12 @@ intersection(const typename R::Line_d& l, const typename R::Segment_d& s, const
}
template <class R>
typename boost::result_of<typename R::Intersect_d(typename R::Segment_d, typename R::Line_d)>::type
typename cpp11::result_of<typename R::Intersect_d(typename R::Segment_d, typename R::Line_d)>::type
intersection(const typename R::Segment_d& s, const typename R::Line_d& l, const R& r)
{ return intersection(l,s,r); }
template <class R>
typename boost::result_of<typename R::Intersect_d(typename R::Line_d, typename R::Hyperplane_d)>::type
typename cpp11::result_of<typename R::Intersect_d(typename R::Line_d, typename R::Hyperplane_d)>::type
intersection(const typename R::Line_d& l, const typename R::Hyperplane_d& h, const R&)
{
typedef typename R::Line_d_Hyperplane_d_pair lh_pair;
@ -212,12 +212,12 @@ intersection(const typename R::Line_d& l, const typename R::Hyperplane_d& h, con
}
template <class R>
typename boost::result_of<typename R::Intersect_d(typename R::Hyperplane_d, typename R::Line_d)>::type
typename cpp11::result_of<typename R::Intersect_d(typename R::Hyperplane_d, typename R::Line_d)>::type
intersection(const typename R::Hyperplane_d& h, const typename R::Line_d& l, const R& r)
{ return intersection(l,h,r); }
template <class R>
typename boost::result_of<typename R::Intersect_d(typename R::Ray_d, typename R::Hyperplane_d)>::type
typename cpp11::result_of<typename R::Intersect_d(typename R::Ray_d, typename R::Hyperplane_d)>::type
intersection(const typename R::Ray_d& r, const typename R::Hyperplane_d& h, const R&)
{
typedef typename R::Ray_d_Hyperplane_d_pair rh_pair;
@ -238,12 +238,12 @@ intersection(const typename R::Ray_d& r, const typename R::Hyperplane_d& h, cons
}
template <class R>
typename boost::result_of<typename R::Intersect_d(typename R::Hyperplane_d, typename R::Ray_d)>::type
typename cpp11::result_of<typename R::Intersect_d(typename R::Hyperplane_d, typename R::Ray_d)>::type
intersection(const typename R::Hyperplane_d& h, const typename R::Ray_d& r, const R& k)
{ return intersection(r,h,k); }
template <class R>
typename boost::result_of<typename R::Intersect_d(typename R::Segment_d, typename R::Hyperplane_d)>::type
typename cpp11::result_of<typename R::Intersect_d(typename R::Segment_d, typename R::Hyperplane_d)>::type
intersection(const typename R::Segment_d& s, const typename R::Hyperplane_d& h, const R&)
{
typedef typename R::Segment_d_Hyperplane_d_pair sh_pair;
@ -265,7 +265,7 @@ intersection(const typename R::Segment_d& s, const typename R::Hyperplane_d& h,
}
template <class R>
typename boost::result_of<typename R::Intersect_d(typename R::Hyperplane_d, typename R::Segment_d)>::type
typename cpp11::result_of<typename R::Intersect_d(typename R::Hyperplane_d, typename R::Segment_d)>::type
intersection(const typename R::Hyperplane_d& h, const typename R::Segment_d& s, const R& r)
{ return intersection(s,h,r); }

View File

@ -201,7 +201,7 @@ public:
template<typename Query>
Surface_patch clip_to_segment(const Query& query) const
{
typename boost::result_of<typename BGT::Intersect_3(Query, Iso_cuboid_3)>::type
typename cpp11::result_of<typename BGT::Intersect_3(Query, Iso_cuboid_3)>::type
clipped = CGAL::intersection(query, r_domain_.bbox_);
if(clipped)
@ -324,7 +324,7 @@ public:
template<typename Query>
Intersection clip_to_segment(const Query& query) const
{
typename boost::result_of<typename BGT::Intersect_3(Query, Iso_cuboid_3)>::type
typename cpp11::result_of<typename BGT::Intersect_3(Query, Iso_cuboid_3)>::type
clipped = CGAL::intersection(query, r_domain_.bbox_);
if(clipped)

View File

@ -50,7 +50,7 @@ public:
template <typename F, typename A, typename B>
struct result<F(A, B)> {
typedef typename boost::result_of<typename K_::Intersect_3(A, B)>::type type;
typedef typename cpp11::result_of<typename K_::Intersect_3(A, B)>::type type;
};
typedef Exact_predicates_exact_constructions_kernel EK;
@ -58,7 +58,7 @@ public:
typedef Cartesian_converter<EK, typename K_::Kernel> Back_from_exact;
template<class T1, class T2>
typename boost::result_of<typename K_::Intersect_3(T1, T2)>::type
typename cpp11::result_of<typename K_::Intersect_3(T1, T2)>::type
operator() (const T1& t, const T2& s) const
{
// Switch to exact
@ -67,7 +67,7 @@ public:
EK::Intersect_3 exact_intersection = EK().intersect_3_object();
// Cartesian converters have an undocumented, optional< variant > operator
return typename boost::result_of<typename K_::Intersect_3(T1, T2)>::type
return typename cpp11::result_of<typename K_::Intersect_3(T1, T2)>::type
(back_from_exact(exact_intersection(to_exact(t), to_exact(s))));
}
};