diff --git a/dune/solvers/common/CMakeLists.txt b/dune/solvers/common/CMakeLists.txt
index 506ce71ae473a3c286b26d82e3fff1022584f1b1..fe07b0653a20251391683b3447160ab768495428 100644
--- a/dune/solvers/common/CMakeLists.txt
+++ b/dune/solvers/common/CMakeLists.txt
@@ -12,4 +12,5 @@ install(FILES
     resize.hh
     staticmatrixtools.hh
     tuplevector.hh
+    typetraits.hh
     DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/dune/solvers/common)
diff --git a/dune/solvers/common/typetraits.hh b/dune/solvers/common/typetraits.hh
new file mode 100644
index 0000000000000000000000000000000000000000..968014f8a6f66357bc652713f267c204d90dfbc6
--- /dev/null
+++ b/dune/solvers/common/typetraits.hh
@@ -0,0 +1,16 @@
+#ifndef DUNE_SOLVERS_COMMON_TYPETRAITS_HH
+#define DUNE_SOLVERS_COMMON_TYPETRAITS_HH
+
+#include <type_traits>
+
+namespace Dune {
+template <typename T>
+struct isNumber
+    : public std::integral_constant<bool, std::is_arithmetic<T>::value> {};
+
+template <typename T>
+struct isNumber<std::complex<T>>
+    : public std::integral_constant<bool, isNumber<T>::value> {};
+}
+
+#endif