From: Daniel Arndt Date: Fri, 22 Nov 2019 19:09:57 +0000 (-0500) Subject: Disable DEAL_II_HAVE_CXX14_CONSTEXPR_CAN_CALL_NONCONSTEXPR for MSVC X-Git-Tag: v9.2.0-rc1~859^2~2 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=61a820796a076d14d67ff64d1394dd0e5ce8b267;p=dealii.git Disable DEAL_II_HAVE_CXX14_CONSTEXPR_CAN_CALL_NONCONSTEXPR for MSVC --- diff --git a/cmake/checks/check_01_cxx_features.cmake b/cmake/checks/check_01_cxx_features.cmake index 6eb67b2191..54d0bfa5b2 100644 --- a/cmake/checks/check_01_cxx_features.cmake +++ b/cmake/checks/check_01_cxx_features.cmake @@ -731,28 +731,30 @@ CHECK_CXX_SOURCE_COMPILES( # expression, C++14 allows to call non-constexpr functions from constexpr # functions. Unfortunately, not all compilers obey the standard in this regard. # -CHECK_CXX_SOURCE_COMPILES( - " - #define Assert(x,y) if (!(x)) throw y; - void bar() - {} +IF(NOT CMAKE_CXX_COMPILER_ID MATCHES "MSVC") + CHECK_CXX_SOURCE_COMPILES( + " + #define Assert(x,y) if (!(x)) throw y; + void bar() + {} - constexpr int - foo(const int n) - { - Assert(n>0, \"hello\"); - if(!(n >= 0)) - bar(); - return n; - } + constexpr int + foo(const int n) + { + Assert(n>0, \"hello\"); + if(!(n >= 0)) + bar(); + return n; + } - int main() - { - constexpr unsigned int n=foo(1); - return n; - } - " - DEAL_II_HAVE_CXX14_CONSTEXPR_CAN_CALL_NONCONSTEXPR) + int main() + { + constexpr unsigned int n=foo(1); + return n; + } + " + DEAL_II_HAVE_CXX14_CONSTEXPR_CAN_CALL_NONCONSTEXPR) +ENDIF() # # The macro DEAL_II_CONSTEXPR allows using c++ constexpr features in a portable way.