From bd33a382ee7730cd708da0743c583dd04e86e85d Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Tue, 29 May 2018 08:56:08 +0200
Subject: [PATCH] COMP: define additional UIndirectList iterator member types
 (closes #847)

- required for std::iterator_traits specialization, which is used by
  the std::max_element algorithm on Darwin.
---
 .../containers/Lists/UIndirectList/UIndirectList.H | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/src/OpenFOAM/containers/Lists/UIndirectList/UIndirectList.H b/src/OpenFOAM/containers/Lists/UIndirectList/UIndirectList.H
index a797dfec52a..7c3191f936a 100644
--- a/src/OpenFOAM/containers/Lists/UIndirectList/UIndirectList.H
+++ b/src/OpenFOAM/containers/Lists/UIndirectList/UIndirectList.H
@@ -190,6 +190,12 @@ public:
 
         public:
 
+            using difference_type = label;
+            using value_type = T;
+            using pointer = T*;
+            using reference = T&;
+            using iterator_category = std::forward_iterator_tag;
+
             iterator
             (
                 UList<T>& list,
@@ -231,6 +237,12 @@ public:
 
         public:
 
+            using difference_type = label;
+            using value_type = const T;
+            using pointer = const T*;
+            using reference = const T&;
+            using iterator_category = std::forward_iterator_tag;
+
             const_iterator
             (
                 const UList<T>& list,
@@ -241,7 +253,7 @@ public:
                 base_(baseIter)
             {}
 
-            const_reference operator*() const
+            reference operator*() const
             {
                 return data_[*base_];
             }
-- 
GitLab