Simplify `value_type` and change `reference`

This commit is contained in:
Laurent Rineau 2021-02-09 09:27:02 +01:00
parent 75bdca5e9f
commit 21cda32aef
1 changed files with 6 additions and 10 deletions

View File

@ -42,15 +42,11 @@ namespace CGAL {
typedef typename Point::Cartesian_const_iterator Iterator;
typedef Cartesian_iterator<Point,Functor> Self;
typedef typename std::iterator_traits<Iterator>::value_type
Coordinate_type;
typedef decltype(
std::declval<Functor>()(std::declval<Coordinate_type>(),
std::declval<Coordinate_type>())) value_type;
typedef value_type& reference;
typedef value_type* pointer;
typedef decltype(std::declval<Functor>()(
*std::declval<Iterator>(),
*std::declval<Iterator>())) value_type;
typedef value_type reference;
typedef const value_type* pointer;
typedef std::ptrdiff_t difference_type;
typedef std::input_iterator_tag iterator_category;
@ -96,7 +92,7 @@ namespace CGAL {
return tmp;
}
value_type operator*() const { return f(*pb, *qb); }
reference operator*() const { return f(*pb, *qb); }
pointer operator->() const { return &(**this); }
const Functor& functor() const { return f; }