From c9d4ecef084631d2296ca49e9a61b795f30a643b Mon Sep 17 00:00:00 2001
From: Tobias Leibner <tobias.leibner@googlemail.com>
Date: Fri, 16 Nov 2018 10:33:32 +0100
Subject: [PATCH] [container] fix ambiguous derived_type lookup in vectors

---
 .gitsuper                                    | 61 ++++++++++++++------
 dune/xt/la/container/common/vector/dense.hh  |  2 +
 dune/xt/la/container/common/vector/sparse.hh |  2 +
 dune/xt/la/container/eigen/dense.hh          |  2 +
 dune/xt/la/container/istl.hh                 |  2 +
 5 files changed, 51 insertions(+), 18 deletions(-)

diff --git a/.gitsuper b/.gitsuper
index 955bbeae1..696a9bba2 100644
--- a/.gitsuper
+++ b/.gitsuper
@@ -1,6 +1,26 @@
 [supermodule]
 remote = git@github.com:dune-community/dune-gdt-super.git
-commit = 5ddf130cadaff3379b27a6fa8f82a47f7a594e9f
+status = 1a3bcab04b011a5d6e44f9983cae6ff89fa695e8 bin (heads/master)
+	 8bc25f171f1901e24bb88812ba222c9fa57a8f2f config.opts (heads/master)
+	 8f2c5aba441417bf2c42f22272f538c68a89cc4a dune-alugrid (remotes/origin/releases/2.5)
+	 707acf201d5a754c80f87cc4d71aa36bf29a6e3f dune-common (v2.5.1-9-g707acf20)
+	+a19a04ab200fe08639aefe9ba7f8f6e3a941dade dune-gdt (heads/new-master)
+	 390a2c503783bbed778a8ff610f8c5ca09c238d0 dune-geometry (v2.5.1-5-g390a2c5)
+	 d7b20bbc5f6fdcfc312beb0ea5d16d39ea26904e dune-grid (v2.5.1-2-gd7b20bbc5)
+	 9e29a333e8af02382d80b95335a784d5ce1ea2c8 dune-grid-glue (v2.4.0-70-g9e29a33)
+	 63df56a54f81eda308233a683eb329e77e69f0a9 dune-istl (v2.5.1rc1)
+	 0d757d65e5d57134a7ecf304e35d063f4ccc7116 dune-localfunctions (v2.5.1rc1)
+	 8a69fc68165780921bbba77da338b6932daf983c dune-pybindxi (v2.2.1-16-g8a69fc6)
+	 741e4f8e53bdd3e1b6e19d84eb22b6e3dc48526c dune-python (remotes/origin/releases/2.5)
+	 26cc8cb4161a3a51002ab2a81b8c81d2c951ee79 dune-testtools (remotes/origin/p/renemilk/testname_listing_hack_no-skiptest)
+	 0a74e7dd0b2115778a5d490dab08a2ed07fcaa1e dune-uggrid (v2.5.2)
+	 f1089d7daae1b2daef7cd33ca216c929c457f9d2 dune-xt-common (heads/master)
+	 7694fbeee4a57b162d404a497e6254721468a3ee dune-xt-data (heads/master)
+	 32a6410545adf800e7b7ebaad5fc592af4ef0675 dune-xt-functions (heads/master)
+	 dce37865d57ea07c2532375cfb6bd1aedf984dc6 dune-xt-grid (heads/master)
+	 9572c6b635365ed9b9a8ff013015834a39ae3c4f dune-xt-la (heads/dailywork_tleibner)
+	 09d0378f616b94d68bcdd9fc6114813181849ec0 scripts (heads/master)
+commit = e9843b01757f0b6b3e50bb1aac7a3283b548241b
 
 [submodule.bin]
 remote = git@github.com:dune-community/local-bin.git
@@ -10,87 +30,92 @@ commit = 1a3bcab04b011a5d6e44f9983cae6ff89fa695e8
 [submodule.config.opts]
 remote = git@github.com:dune-community/config.opts.git
 status = 
-commit = 5147d438044a772a07fd89ff142d861cfc82212e
+commit = 8bc25f171f1901e24bb88812ba222c9fa57a8f2f
 
 [submodule.dune-alugrid]
 remote = https://github.com/dune-mirrors/dune-alugrid.git
 status = 
-commit = f308c6637edd65dcb83c4c1a46feaf05b958130e
+commit = 8f2c5aba441417bf2c42f22272f538c68a89cc4a
 
 [submodule.dune-common]
 remote = git@github.com:dune-community/dune-common.git
 status = 
-commit = 76d7f0c9886a061571cb8dc66dd45a4ef86e7a58
+commit = 707acf201d5a754c80f87cc4d71aa36bf29a6e3f
 
 [submodule.dune-gdt]
 remote = git@github.com:dune-community/dune-gdt.git
 status = 2424627f0ad5de7e4aaa5e7f48bc2a02414d95a1 .vcsetup (heads/master)
-commit = 3f67b50e93884a65644086e3a2d7373d7e98942c
+commit = a19a04ab200fe08639aefe9ba7f8f6e3a941dade
 
 [submodule.dune-geometry]
 remote = git@github.com:dune-community/dune-geometry.git
 status = 
-commit = 5235397bc16d24c759a1672fed7b8cfde4852e52
+commit = 390a2c503783bbed778a8ff610f8c5ca09c238d0
 
 [submodule.dune-grid]
 remote = git@github.com:dune-community/dune-grid.git
 status = 
-commit = af5766f0df47e3d0b62ea486efb9cdbf8e1cfc52
+commit = d7b20bbc5f6fdcfc312beb0ea5d16d39ea26904e
 
 [submodule.dune-grid-glue]
 remote = https://github.com/dune-mirrors/dune-grid-glue.git
 status = 
-commit = 1369ae9329d0928480d6b18ed772fc77e1abf752
+commit = 9e29a333e8af02382d80b95335a784d5ce1ea2c8
 
 [submodule.dune-istl]
 remote = https://github.com/dune-mirrors/dune-istl.git
 status = 
-commit = ef68ae0ec40f9d369e4ea9b31e560af6af545bf6
+commit = 63df56a54f81eda308233a683eb329e77e69f0a9
 
 [submodule.dune-localfunctions]
 remote = https://github.com/dune-mirrors/dune-localfunctions.git
 status = 
-commit = 5a1f77d7a0a41c2d065b29f00dda0871ec70337b
+commit = 0d757d65e5d57134a7ecf304e35d063f4ccc7116
 
 [submodule.dune-pybindxi]
 remote = git@github.com:dune-community/dune-pybindxi.git
 status = a18500d497d2ffa2f627bc6e7da0aa1169b81ea3 .vcsetup (a18500d)
-commit = 6ae2466a8dba39bfa760fd99ce775450c704b03d
+commit = 8a69fc68165780921bbba77da338b6932daf983c
+
+[submodule.dune-python]
+remote = https://github.com/dune-mirrors/dune-python.git
+status = 
+commit = 741e4f8e53bdd3e1b6e19d84eb22b6e3dc48526c
 
 [submodule.dune-testtools]
 remote = https://github.com/dune-mirrors/dune-testtools.git
 status = 
-commit = 58bd932e2311a288e0163d041f836b50f19111cb
+commit = 26cc8cb4161a3a51002ab2a81b8c81d2c951ee79
 
 [submodule.dune-uggrid]
 remote = https://github.com/dune-mirrors/dune-uggrid.git
 status = 
-commit = 07f9700459c616186737a9a34277f2edee76f475
+commit = 0a74e7dd0b2115778a5d490dab08a2ed07fcaa1e
 
 [submodule.dune-xt-common]
 remote = git@github.com:dune-community/dune-xt-common.git
 status = 2424627f0ad5de7e4aaa5e7f48bc2a02414d95a1 .vcsetup (heads/master)
-commit = b399b2b9fea3d23bec2762db2d2560b00b81077a
+commit = f1089d7daae1b2daef7cd33ca216c929c457f9d2
 
 [submodule.dune-xt-data]
 remote = git@github.com:dune-community/dune-xt-data
 status = 2424627f0ad5de7e4aaa5e7f48bc2a02414d95a1 .vcsetup (heads/master)
-commit = 19d69fe20c7dc539341d84ac87c4cad0cbe15d95
+commit = 7694fbeee4a57b162d404a497e6254721468a3ee
 
 [submodule.dune-xt-functions]
 remote = git@github.com:dune-community/dune-xt-functions.git
 status = 2424627f0ad5de7e4aaa5e7f48bc2a02414d95a1 .vcsetup (heads/master)
-commit = 2b1d09ae365d09b71ece0809f53a653c21d702a8
+commit = 32a6410545adf800e7b7ebaad5fc592af4ef0675
 
 [submodule.dune-xt-grid]
 remote = git@github.com:dune-community/dune-xt-grid.git
 status = 2424627f0ad5de7e4aaa5e7f48bc2a02414d95a1 .vcsetup (heads/master)
-commit = ec0722213eb73e8b06f1a220c2d3b890ce7f8b6d
+commit = dce37865d57ea07c2532375cfb6bd1aedf984dc6
 
 [submodule.dune-xt-la]
 remote = git@github.com:dune-community/dune-xt-la.git
 status = 2424627f0ad5de7e4aaa5e7f48bc2a02414d95a1 .vcsetup (heads/master)
-commit = 8418afaa81ce88b0122af7857e8198b6d079f0ee
+commit = 9572c6b635365ed9b9a8ff013015834a39ae3c4f
 
 [submodule.scripts]
 remote = https://github.com/wwu-numerik/scripts.git
diff --git a/dune/xt/la/container/common/vector/dense.hh b/dune/xt/la/container/common/vector/dense.hh
index 3af1d73f2..716a0c2a4 100644
--- a/dune/xt/la/container/common/vector/dense.hh
+++ b/dune/xt/la/container/common/vector/dense.hh
@@ -73,6 +73,8 @@ public:
   using Traits = typename InterfaceType::Traits;
   using typename ProvidesBackend<Traits>::BackendType;
   using typename ProvidesDataAccess<Traits>::DataType;
+  // needed to fix gcc compilation error due to ambiguous lookup of derived type
+  using derived_type = typename Traits::derived_type;
 
 private:
   using MutexesType = typename Traits::MutexesType;
diff --git a/dune/xt/la/container/common/vector/sparse.hh b/dune/xt/la/container/common/vector/sparse.hh
index 736e23637..b70624114 100644
--- a/dune/xt/la/container/common/vector/sparse.hh
+++ b/dune/xt/la/container/common/vector/sparse.hh
@@ -73,6 +73,8 @@ public:
   using typename InterfaceType::Traits;
   using IndicesVectorType = typename Traits::IndicesVectorType;
   using EntriesVectorType = typename Traits::EntriesVectorType;
+  // needed to fix gcc compilation error due to ambiguous lookup of derived type
+  using derived_type = typename Traits::derived_type;
 
 private:
   using MutexesType = typename Traits::MutexesType;
diff --git a/dune/xt/la/container/eigen/dense.hh b/dune/xt/la/container/eigen/dense.hh
index 5125b4e43..78ad1e399 100644
--- a/dune/xt/la/container/eigen/dense.hh
+++ b/dune/xt/la/container/eigen/dense.hh
@@ -253,6 +253,8 @@ public:
   using typename InterfaceType::ScalarType;
   using Traits = typename InterfaceType::Traits;
   using BackendType = typename Traits::BackendType;
+  // needed to fix gcc compilation error due to ambiguous lookup of derived type
+  using derived_type = typename Traits::derived_type;
 
 private:
   using EIGEN_size_t = typename BackendType::Index;
diff --git a/dune/xt/la/container/istl.hh b/dune/xt/la/container/istl.hh
index 0416e93cb..221456e99 100644
--- a/dune/xt/la/container/istl.hh
+++ b/dune/xt/la/container/istl.hh
@@ -98,6 +98,8 @@ public:
   using Traits = typename InterfaceType::Traits;
   using typename ProvidesBackend<Traits>::BackendType;
   using typename ProvidesDataAccess<Traits>::DataType;
+  // needed to fix gcc compilation error due to ambiguous lookup of derived type
+  using derived_type = typename Traits::derived_type;
 
 private:
   using MutexesType = typename Traits::MutexesType;
-- 
GitLab