From 495cc85c1cdf2ee9d369e7fe08d5d7d94061b4f2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Carsten=20Gr=C3=A4ser?= <graeser@dune-project.org>
Date: Tue, 23 Aug 2016 18:29:57 +0200
Subject: [PATCH] [cleanup] Use Dune::is_indexable

---
 dune/solvers/common/resize.hh | 26 +++-----------------------
 1 file changed, 3 insertions(+), 23 deletions(-)

diff --git a/dune/solvers/common/resize.hh b/dune/solvers/common/resize.hh
index 5bcda098..a1bbeafa 100644
--- a/dune/solvers/common/resize.hh
+++ b/dune/solvers/common/resize.hh
@@ -5,6 +5,7 @@
 
 #include <dune/common/indices.hh>
 #include <dune/common/concept.hh>
+#include <dune/common/typetraits.hh>
 
 #include <dune/solvers/common/defaultbitvector.hh>
 
@@ -13,27 +14,6 @@
 namespace Dune {
 namespace Solvers {
 
-namespace Concept {
-
-struct HasResize
-{
-  template<class C>
-  auto require(C&& c) -> decltype(
-    c.resize(0)
-  );
-};
-
-template<class Index>
-struct HasBracketOperator
-{
-  template<class T>
-  auto require(T&& t) -> decltype(
-      t[std::declval<Index>()]
-  );
-};
-
-} // namespace Concept
-
 
 
 namespace Impl {
@@ -49,14 +29,14 @@ void resizeInitialize(Dune::BitSetVector<size, Alloc>& x, const Vector& y, bool
 }
 
 template<class TargetVector, class Vector, class Value,
-  std::enable_if_t<not models<Dune::Solvers::Concept::HasBracketOperator<std::integral_constant<std::size_t,0> >, TargetVector>(), int> = 0>
+  std::enable_if_t<not Dune::is_indexable<TargetVector, std::integral_constant<std::size_t,0> >::value, int> = 0>
 void resizeInitialize(TargetVector& x, const Vector& y, const Value& value)
 {
   x = value;
 }
 
 template<class TargetVector, class Vector, class Value,
-  std::enable_if_t< models<Dune::Solvers::Concept::HasBracketOperator<std::integral_constant<std::size_t,0> >, TargetVector>(), int> = 0>
+  std::enable_if_t<Dune::is_indexable<TargetVector, std::integral_constant<std::size_t,0> >::value, int> = 0>
 void resizeInitialize(TargetVector& x, const Vector& y, const Value& value)
 {
   namespace H = Dune::Hybrid;
-- 
GitLab