diff --git a/cmake/modules/CheckCXX11Features.cmake b/cmake/modules/CheckCXX11Features.cmake
index 7a564304cfb0344e73a322d98071e8a39cefda4e..7ddaf3021128453fa385b7bfe627f341268b9f69 100644
--- a/cmake/modules/CheckCXX11Features.cmake
+++ b/cmake/modules/CheckCXX11Features.cmake
@@ -324,4 +324,22 @@ check_cxx_source_compiles("
 " HAVE_INITIALIZER_LIST
 )
 
+# constexpr
+check_cxx_source_compiles("
+  constexpr int foo()
+  { return 0; }
+
+  template<int v>
+  struct A
+  {
+    static const int value = v;
+  };
+
+  int main(void)
+  {
+    return A<foo()>::value;
+  }
+" HAVE_CONSTEXPR
+)
+
 cmake_pop_check_state()
diff --git a/config.h.cmake b/config.h.cmake
index 7e1d86719f2c556060b02aacdafd7771a7ab1b44..6972a7da4227e5a489fd0fb2009d16c9b5974a0b 100644
--- a/config.h.cmake
+++ b/config.h.cmake
@@ -160,6 +160,9 @@
 /* Define to 1 if initializer list is supported */
 #cmakedefine HAVE_INITIALIZER_LIST 1
 
+/* Define to 1 if C++11 constexpr is supported */
+#cmakedefine HAVE_CONSTEXPR 1
+
 /* Define to if the UMFPack library is available */
 #cmakedefine HAVE_UMFPACK ENABLE_UMFPACK