@@ -205,6 +205,11 @@ namespace lib_interval_tree
205205 friend lib_interval_tree::interval_tree_iterator <node <numerical_type, interval_type>, true >;
206206 friend lib_interval_tree::interval_tree_iterator <node <numerical_type, interval_type>, false >;
207207
208+ template <typename T>
209+ friend void increment (T& iter);
210+ template <typename T>
211+ friend void increment_reverse (T& iter);
212+
208213 public:
209214 node (node* parent, interval_type interval)
210215 : interval_{std::move (interval)}
@@ -432,8 +437,10 @@ namespace lib_interval_tree
432437 const_interval_tree_iterator& operator =(const_interval_tree_iterator const &) = default ;
433438 const_interval_tree_iterator& operator =(const_interval_tree_iterator&&) noexcept = default ;
434439
435- friend void increment<const_interval_tree_iterator<node_type, reverse>>(const_interval_tree_iterator<node_type, reverse>& iter);
436- friend void increment_reverse<const_interval_tree_iterator<node_type, reverse>>(const_interval_tree_iterator<node_type, reverse>& iter);
440+ template <typename T>
441+ friend void increment (T& iter);
442+ template <typename T>
443+ friend void increment_reverse (T& iter);
437444
438445 const_interval_tree_iterator& operator ++()
439446 {
@@ -535,8 +542,10 @@ namespace lib_interval_tree
535542 interval_tree_iterator& operator =(interval_tree_iterator const &) = default ;
536543 interval_tree_iterator& operator =(interval_tree_iterator&&) noexcept = default ;
537544
538- friend void increment<interval_tree_iterator<node_type, reverse>>(interval_tree_iterator<node_type, reverse>& iter);
539- friend void increment_reverse<interval_tree_iterator<node_type, reverse>>(interval_tree_iterator<node_type, reverse>& iter);
545+ template <typename T>
546+ friend void increment (T& iter);
547+ template <typename T>
548+ friend void increment_reverse (T& iter);
540549
541550 interval_tree_iterator& operator ++()
542551 {
@@ -702,6 +711,11 @@ namespace lib_interval_tree
702711 friend interval_tree_iterator <node_type, true >;
703712 friend interval_tree_iterator <node_type, false >;
704713
714+ template <typename T>
715+ friend void increment (T& iter);
716+ template <typename T>
717+ friend void increment_reverse (T& iter);
718+
705719 public:
706720 interval_tree ()
707721 : root_{nullptr }
0 commit comments