From cb980dbdcc26d187ebe8aad108022be9458be983 Mon Sep 17 00:00:00 2001
From: Sam Yates <halfflat@gmail.com>
Date: Thu, 25 Aug 2016 17:35:10 +0200
Subject: [PATCH] *This* should be the fix for gcc 4.9.3.

---
 src/util/range.hpp | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/util/range.hpp b/src/util/range.hpp
index 7777444d..2439ca74 100644
--- a/src/util/range.hpp
+++ b/src/util/range.hpp
@@ -87,9 +87,9 @@ struct range {
         std::swap(right, other.right);
     }
 
-    decltype(*left) front() const { return *left; }
+    auto front() const -> decltype(*left) { return *left; }
 
-    decltype(*left) back() const { return *upto(left, right); }
+    auto back() const -> decltype(*left) { return *upto(left, right); }
 
     template <typename V = iterator>
     enable_if_t<is_random_access_iterator<V>::value, decltype(*left)>
@@ -200,7 +200,7 @@ public:
 
     // forward and input iterator requirements
 
-    auto operator*() const -> decltype(*iter()) { return *iter(); }
+    auto operator*() const -> decltype(*(this->iter())) { return *iter(); }
 
     I operator->() const { return e_.template ptr<0>(); }
 
@@ -271,7 +271,7 @@ public:
         return iter()-x.iter();
     }
 
-    auto operator[](difference_type n) const -> decltype(*iter()){
+    auto operator[](difference_type n) const -> decltype(*(this->iter())) {
         return *(iter()+n);
     }
 
-- 
GitLab