# DEAL_II_WITH_CXX14
# DEAL_II_WITH_CXX17
#
+# DEAL_II_HAVE_ATTRIBUTE_FALLTHROUGH
# DEAL_II_HAVE_CXX11_IS_TRIVIALLY_COPYABLE
+# DEAL_II_HAVE_CXX17_SPECIAL_MATH_FUNCTIONS
# DEAL_II_HAVE_FP_EXCEPTIONS
# DEAL_II_HAVE_COMPLEX_OPERATOR_OVERLOADS
#
"
DEAL_II_HAVE_CXX17_IF_CONSTEXPR)
- #
- # Not all compilers with C++17 support include the new special math functions:
- #
- CHECK_CXX_SOURCE_COMPILES(
- "
- #include <cmath>
-
- int main()
- {
- std::cyl_bessel_j(1.0, 1.0);
- std::cyl_bessel_jf(1.0f, 1.0f);
- std::cyl_bessel_jl(1.0, 1.0);
- }
- "
- DEAL_II_HAVE_CXX17_SPECIAL_MATH_FUNCTIONS)
-
#
# Some compilers treat lambdas as constexpr functions when compiling
# with C++17 support even if they don't fulfill all the constexpr
"${CMAKE_REQUIRED_FLAGS}${DEAL_II_CXX_VERSION_FLAG}${DEAL_II_WITH_CXX14}${DEAL_II_WITH_CXX17}"
DEAL_II_HAVE_ATTRIBUTE_FALLTHROUGH
DEAL_II_HAVE_CXX11_IS_TRIVIALLY_COPYABLE
+ DEAL_II_HAVE_CXX17_SPECIAL_MATH_FUNCTIONS
DEAL_II_HAVE_FP_EXCEPTIONS
DEAL_II_HAVE_COMPLEX_OPERATOR_OVERLOADS
)
"
DEAL_II_HAVE_COMPLEX_OPERATOR_OVERLOADS)
+#
+# Not all compilers with C++17 support include the new special math
+# functions. Check this separately so that we can use C++17 compilers that don't
+# support it.
+#
+CHECK_CXX_SOURCE_COMPILES(
+ "
+ #include <cmath>
+
+ int main()
+ {
+ std::cyl_bessel_j(1.0, 1.0);
+ std::cyl_bessel_jf(1.0f, 1.0f);
+ std::cyl_bessel_jl(1.0, 1.0);
+ }
+ "
+ DEAL_II_HAVE_CXX17_SPECIAL_MATH_FUNCTIONS)
+
RESET_CMAKE_REQUIRED()
DEAL_II_NAMESPACE_OPEN
namespace std_cxx17
{
-#ifndef DEAL_II_WITH_CXX17
+#ifdef DEAL_II_HAVE_CXX17_SPECIAL_MATH_FUNCTIONS
double (&cyl_bessel_j)(double,
double) = boost::math::cyl_bessel_j<double, double>;
float (&cyl_bessel_jf)(float,