Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:39:31

0001 //  (C) Copyright John Maddock 2023.
0002 //  Use, modification and distribution are subject to the
0003 //  Boost Software License, Version 1.0. (See accompanying file
0004 //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
0005 //
0006 //  Core configuration for ccmath functions, basically will they work or not?
0007 
0008 #ifndef BOOST_MATH_CCMATH_DETAIL_CONFIG
0009 #define BOOST_MATH_CCMATH_DETAIL_CONFIG
0010 
0011 #include <cmath>
0012 #include <type_traits>
0013 #include <limits>
0014 #include <boost/math/tools/is_constant_evaluated.hpp>
0015 #include <boost/math/tools/is_standalone.hpp>
0016 
0017 #ifndef BOOST_MATH_STANDALONE
0018 
0019 #include <boost/config.hpp>
0020 #ifdef BOOST_NO_CXX17_IF_CONSTEXPR
0021 #  define BOOST_MATH_NO_CCMATH
0022 #endif
0023 
0024 #else // BOOST_MATH_STANDALONE
0025 
0026 #if defined(_MSC_VER)
0027 
0028 #if defined(_MSVC_LANG) && (_MSVC_LANG < 201703)
0029 #  define BOOST_MATH_NO_CCMATH
0030 #endif
0031 
0032 #else // _MSC_VER
0033 
0034 #if (__cplusplus < 201703)
0035 #  define BOOST_MATH_NO_CCMATH
0036 #endif
0037 
0038 #endif
0039 
0040 #endif
0041 
0042 #ifndef _MSC_VER
0043 //
0044 // Don't check here for msvc as they didn't get std lib configuration macros at the same time as C++17 <type_traits>
0045 //
0046 #if (__cpp_lib_bool_constant < 201505L) && !defined(BOOST_MATH_NO_CCMATH)
0047 #  define BOOST_MATH_NO_CCMATH
0048 #endif
0049 #endif
0050 
0051 
0052 #endif