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