diff --git a/dune/istl/multitypeblockmatrix.hh b/dune/istl/multitypeblockmatrix.hh index 57f73b2c7ea6ddd65dd4f16d2e47a94a0370f0a4..e15ab14705ed0c45825644d0915916c6b6aca1b5 100644 --- a/dune/istl/multitypeblockmatrix.hh +++ b/dune/istl/multitypeblockmatrix.hh @@ -613,5 +613,14 @@ namespace std { using type = typename std::tuple_element<i, std::tuple<Args...> >::type; }; + + /** \brief Make std::tuple_size work for MultiTypeBlockMatrix + * + * It derives from std::tuple after all. + */ + template <typename... Args> + struct tuple_size<Dune::MultiTypeBlockMatrix<Args...> > + : std::integral_constant<std::size_t, sizeof...(Args)> + {}; } #endif diff --git a/dune/istl/multitypeblockvector.hh b/dune/istl/multitypeblockvector.hh index 5f1a3b24e3486ab5ffe33e402f408572ab67dc25..e512fcb3f2cf2543f775cb3f3348fceb78a24921 100644 --- a/dune/istl/multitypeblockvector.hh +++ b/dune/istl/multitypeblockvector.hh @@ -345,6 +345,15 @@ namespace std { using type = typename std::tuple_element<i, std::tuple<Args...> >::type; }; + + /** \brief Make std::tuple_size work for MultiTypeBlockVector + * + * It derives from std::tuple after all. + */ + template <typename... Args> + struct tuple_size<Dune::MultiTypeBlockVector<Args...> > + : std::integral_constant<std::size_t, sizeof...(Args)> + {}; } #endif