#
# DEAL_II_HAVE_FP_EXCEPTIONS
# DEAL_II_HAVE_COMPLEX_OPERATOR_OVERLOADS
+# DEAL_II_HAVE_CXX17_BESSEL_FUNCTIONS
# DEAL_II_FALLTHROUGH
# DEAL_II_DEPRECATED
# DEAL_II_CONSTEXPR
DEAL_II_HAVE_CXX17_CONSTEXPR_LAMBDA_BUG_OK
)
- # Test that the c++17 attributes are supported.
CHECK_CXX_SOURCE_COMPILES(
"
- #include <cmath>
#include <iostream>
#include <optional>
#include <tuple>
//check for some C++17 features that we use in our headers:
using std::apply;
- using std::cyl_bessel_j;
- using std::cyl_bessel_jf;
- using std::cyl_bessel_jl;
using std::optional;
[[nodiscard]] int test_nodiscard()
DEAL_II_HAVE_COMPLEX_OPERATOR_OVERLOADS
DEAL_II_HAVE_CXX17_ATTRIBUTE_FALLTHROUGH
DEAL_II_HAVE_ATTRIBUTE_FALLTHROUGH
+ DEAL_II_HAVE_CXX17_BESSEL_FUNCTIONS
DEAL_II_CXX14_CONSTEXPR_BUG_OK
)
ENDIF()
+#
+# Check for c++17 bessel function support. Unfortunately libc++ version 10
+# does not have those.
+#
+
+CHECK_CXX_SOURCE_COMPILES(
+ "
+ #include <cmath>
+ using std::cyl_bessel_j;
+ using std::cyl_bessel_jf;
+ using std::cyl_bessel_jl;
+ int main()
+ {
+ }
+ "
+ DEAL_II_HAVE_CXX17_BESSEL_FUNCTIONS
+ )
+
+
#
# Check for correct c++14 constexpr support.
#
#cmakedefine DEAL_II_HAVE_FP_EXCEPTIONS
#cmakedefine DEAL_II_HAVE_COMPLEX_OPERATOR_OVERLOADS
+#cmakedefine DEAL_II_HAVE_CXX17_BESSEL_FUNCTIONS
#cmakedefine DEAL_II_CXX14_CONSTEXPR_BUG
#cmakedefine DEAL_II_DEPRECATED @DEAL_II_DEPRECATED@
#include <deal.II/base/config.h>
-#ifdef DEAL_II_HAVE_CXX17
+#ifdef DEAL_II_HAVE_CXX17_BESSEL_FUNCTIONS
# include <cmath>
#else
# include <boost/math/special_functions/bessel.hpp>
DEAL_II_NAMESPACE_OPEN
namespace std_cxx17
{
-#ifndef DEAL_II_HAVE_CXX17
+#ifndef DEAL_II_HAVE_CXX17_BESSEL_FUNCTIONS
double (&cyl_bessel_j)(double,
double) = boost::math::cyl_bessel_j<double, double>;
float (&cyl_bessel_jf)(float,