From 3eb1f4ca690a687ca995ad8a47e517ef8f8d6cee Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Wed, 13 Jul 2016 11:10:09 +0200 Subject: [PATCH] Clean-up - Clean-up - Moved Prevent_deref to CGAL/iterator.h --- .../boost/graph/graph_traits_HalfedgeDS.h | 24 +---------------- .../internal/Generic_random_point_generator.h | 6 ++--- Generator/include/CGAL/point_generators_2.h | 4 +-- Generator/include/CGAL/point_generators_3.h | 6 ++--- STL_Extension/include/CGAL/iterator.h | 27 +++++++++++++++++++ 5 files changed, 36 insertions(+), 31 deletions(-) diff --git a/BGL/include/CGAL/boost/graph/graph_traits_HalfedgeDS.h b/BGL/include/CGAL/boost/graph/graph_traits_HalfedgeDS.h index b6e764277ef..cd5f94d3456 100644 --- a/BGL/include/CGAL/boost/graph/graph_traits_HalfedgeDS.h +++ b/BGL/include/CGAL/boost/graph/graph_traits_HalfedgeDS.h @@ -36,6 +36,7 @@ #include #include #include +#include #ifndef CGAL_NO_DEPRECATED_CODE #include @@ -45,29 +46,6 @@ namespace CGAL { namespace internal { -template -class Prevent_deref - : public boost::iterator_adaptor< - Prevent_deref - , I // base - , I // value - > -{ -public: - typedef boost::iterator_adaptor< - Prevent_deref - , I // base - , I // value - > Base; - // typedef typename Prevent_deref::iterator_adaptor_::reference reference; - typedef typename Base::reference reference; - Prevent_deref() : Base() {}; - Prevent_deref(const I& i) : Base(i) {}; -private: - friend class boost::iterator_core_access; - reference dereference() const { return const_cast::type&>(this->base_reference()); } -}; - // a HDS_halfedge pretending to be an Edge template struct HDS_edge { diff --git a/Generator/include/CGAL/internal/Generic_random_point_generator.h b/Generator/include/CGAL/internal/Generic_random_point_generator.h index 9c9d6ad752a..77f83397339 100644 --- a/Generator/include/CGAL/internal/Generic_random_point_generator.h +++ b/Generator/include/CGAL/internal/Generic_random_point_generator.h @@ -34,8 +34,8 @@ template class Generic_random_point_generator : public Random_generator_base

{ typedef Generic_random_point_generator This; - typedef typename ObjectFromIdMap::reference Geometric_object_ref; - typedef typename cpp11::result_of::type result_type; + typedef typename cpp11::result_of::type Geometric_object; + typedef Geometric_object result_type; std::vector ids; std::vector weights; @@ -65,7 +65,7 @@ public: BOOST_FOREACH(Id id, input) { //create a geometric object - Geometric_object_ref object = object_from_id_map(id); + Geometric_object object = object_from_id_map(id); ids.push_back(id); //compute the weight of a face total_weight += to_double( compute_weight(object) ); diff --git a/Generator/include/CGAL/point_generators_2.h b/Generator/include/CGAL/point_generators_2.h index 75d296b6573..567c2b5beb9 100644 --- a/Generator/include/CGAL/point_generators_2.h +++ b/Generator/include/CGAL/point_generators_2.h @@ -32,7 +32,7 @@ #include #include #include -#include +#include namespace CGAL { @@ -553,7 +553,7 @@ class Triangle_from_face_2 { typedef typename T::Triangle Triangle; public: - typedef Triangle reference; + typedef Triangle result_type; Triangle_from_face_2(){} Triangle operator()(typename T::Face_handle face)const { diff --git a/Generator/include/CGAL/point_generators_3.h b/Generator/include/CGAL/point_generators_3.h index 28a450a72a3..8ce59d066ac 100644 --- a/Generator/include/CGAL/point_generators_3.h +++ b/Generator/include/CGAL/point_generators_3.h @@ -318,7 +318,7 @@ class Triangle_from_face_3 private: PMAP map; public: - typedef Triangle reference; + typedef Triangle result_type; Triangle_from_face_3(PMAP map) :map(map) @@ -380,7 +380,7 @@ class Triangle_from_face_C3t3 typedef typename T::Point Point; typedef std::pair Face; public: - typedef Triangle reference; + typedef Triangle result_type; Triangle_from_face_C3t3() {} @@ -402,7 +402,7 @@ class Tetrahedron_from_cell_C3t3 typedef typename T::Point Point; typedef typename Kernel_traits::Kernel::Tetrahedron_3 Tetrahedron; public: - typedef Tetrahedron reference; + typedef Tetrahedron result_type; Tetrahedron_from_cell_C3t3() {} diff --git a/STL_Extension/include/CGAL/iterator.h b/STL_Extension/include/CGAL/iterator.h index c801a71a324..e722d4efc39 100644 --- a/STL_Extension/include/CGAL/iterator.h +++ b/STL_Extension/include/CGAL/iterator.h @@ -49,6 +49,33 @@ #endif namespace CGAL { +namespace internal{ + +template +class Prevent_deref + : public boost::iterator_adaptor< + Prevent_deref + , I // base + , I // value + > +{ +public: + typedef boost::iterator_adaptor< + Prevent_deref + , I // base + , I // value + > Base; + // typedef typename Prevent_deref::iterator_adaptor_::reference reference; + typedef typename Base::reference reference; + Prevent_deref() : Base() {} + Prevent_deref(const I& i) : Base(i) {} +private: + friend class boost::iterator_core_access; + reference dereference() const { return const_cast::type&>(this->base_reference()); } +}; + +}//end of namespace internal + // +----------------------------------------------------------------+ // | Emptyset_iterator // +----------------------------------------------------------------+