From ccb3d08c2433e9f9b9d871152a22eb9a857ff2e6 Mon Sep 17 00:00:00 2001
From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz>
Date: Thu, 8 Sep 2016 15:05:20 +0200
Subject: [PATCH] allow operator -> on tree iterators

---
 alib2std/src/extensions/forward_tree.hpp | 16 ++++++++++++++++
 alib2std/src/extensions/tree.hpp         | 16 ++++++++++++++++
 2 files changed, 32 insertions(+)

diff --git a/alib2std/src/extensions/forward_tree.hpp b/alib2std/src/extensions/forward_tree.hpp
index 1a72d89bfd..00970e3721 100644
--- a/alib2std/src/extensions/forward_tree.hpp
+++ b/alib2std/src/extensions/forward_tree.hpp
@@ -151,6 +151,10 @@ public:
 			return node->getData ( );
 		}
 
+		const T * operator ->( ) const {
+			return & node->getData ( );
+		}
+
 		size_t operator -( const const_children_iterator other ) const {
 			return node - other.node;
 		}
@@ -287,6 +291,10 @@ public:
 			return node->getData ( );
 		}
 
+		const T * operator ->( ) const {
+			return & node->getData ( );
+		}
+
 		unsigned getLevel ( ) const {
 			return level;
 		}
@@ -356,6 +364,10 @@ public:
 			return * node;
 		}
 
+		const T * operator ->( ) const {
+			return & node->getData ( );
+		}
+
 		unsigned getLevel ( ) const {
 			return node.getLevel ( );
 		}
@@ -421,6 +433,10 @@ public:
 			return * node;
 		}
 
+		const T * operator ->( ) const {
+			return & node->getData ( );
+		}
+
 		unsigned getLevel ( ) const {
 			return node.getLevel ( );
 		}
diff --git a/alib2std/src/extensions/tree.hpp b/alib2std/src/extensions/tree.hpp
index b5721b1186..61df0b725b 100644
--- a/alib2std/src/extensions/tree.hpp
+++ b/alib2std/src/extensions/tree.hpp
@@ -173,6 +173,10 @@ public:
 			return node->getData ( );
 		}
 
+		const T * operator ->( ) const {
+			return & node->getData ( );
+		}
+
 		size_t operator -( const const_children_iterator other ) const {
 			return node - other.node;
 		}
@@ -306,6 +310,10 @@ public:
 			return node->getData ( );
 		}
 
+		const T * operator ->( ) const {
+			return & node->getData ( );
+		}
+
 		unsigned getLevel ( ) const {
 			return level;
 		}
@@ -375,6 +383,10 @@ public:
 			return * node;
 		}
 
+		const T * operator ->( ) const {
+			return & node->getData ( );
+		}
+
 		unsigned getLevel ( ) const {
 			return node.getLevel ( );
 		}
@@ -440,6 +452,10 @@ public:
 			return * node;
 		}
 
+		const T * operator ->( ) const {
+			return & node->getData ( );
+		}
+
 		unsigned getLevel ( ) const {
 			return node.getLevel ( );
 		}
-- 
GitLab