2
0
mirror of https://github.com/boostorg/math.git synced 2026-01-19 04:22:09 +00:00

Improve error detection further.

This commit is contained in:
jzmaddock
2023-11-06 09:40:26 +00:00
parent d7048ecfa7
commit 90c509398b
31 changed files with 180 additions and 111 deletions

View File

@@ -8,15 +8,16 @@
#ifndef BOOST_MATH_CCMATH_ABS
#define BOOST_MATH_CCMATH_ABS
#include <boost/math/tools/assert.hpp>
#include <boost/math/ccmath/detail/config.hpp>
#include <boost/math/ccmath/isnan.hpp>
#include <boost/math/ccmath/isinf.hpp>
#ifdef BOOST_MATH_NO_CCMATH
#error "The header <boost/math/abs.hpp> can only be used in C++17 and later."
#endif
#include <boost/math/tools/assert.hpp>
#include <boost/math/ccmath/isnan.hpp>
#include <boost/math/ccmath/isinf.hpp>
namespace boost::math::ccmath {
namespace detail {

View File

@@ -6,9 +6,12 @@
#ifndef BOOST_MATH_CCMATH_CEIL_HPP
#define BOOST_MATH_CCMATH_CEIL_HPP
#include <cmath>
#include <type_traits>
#include <boost/math/tools/is_constant_evaluated.hpp>
#include <boost/math/ccmath/detail/config.hpp>
#ifdef BOOST_MATH_NO_CCMATH
#error "The header <boost/math/ceil.hpp> can only be used in C++17 and later."
#endif
#include <boost/math/ccmath/floor.hpp>
#include <boost/math/ccmath/abs.hpp>
#include <boost/math/ccmath/isinf.hpp>

View File

@@ -8,6 +8,12 @@
#ifndef BOOST_MATH_CCMATH_FABS
#define BOOST_MATH_CCMATH_FABS
#include <boost/math/ccmath/detail/config.hpp>
#ifdef BOOST_MATH_NO_CCMATH
#error "The header <boost/math/fabs.hpp> can only be used in C++17 and later."
#endif
#include <boost/math/ccmath/abs.hpp>
namespace boost::math::ccmath {

View File

@@ -6,10 +6,12 @@
#ifndef BOOST_MATH_CCMATH_FDIM_HPP
#define BOOST_MATH_CCMATH_FDIM_HPP
#include <cmath>
#include <limits>
#include <type_traits>
#include <boost/math/tools/is_constant_evaluated.hpp>
#include <boost/math/ccmath/detail/config.hpp>
#ifdef BOOST_MATH_NO_CCMATH
#error "The header <boost/math/fdim.hpp> can only be used in C++17 and later."
#endif
#include <boost/math/tools/promotion.hpp>
#include <boost/math/ccmath/isnan.hpp>

View File

@@ -6,10 +6,12 @@
#ifndef BOOST_MATH_CCMATH_FLOOR_HPP
#define BOOST_MATH_CCMATH_FLOOR_HPP
#include <cmath>
#include <limits>
#include <type_traits>
#include <boost/math/tools/is_constant_evaluated.hpp>
#include <boost/math/ccmath/detail/config.hpp>
#ifdef BOOST_MATH_NO_CCMATH
#error "The header <boost/math/floor.hpp> can only be used in C++17 and later."
#endif
#include <boost/math/ccmath/abs.hpp>
#include <boost/math/ccmath/isinf.hpp>
#include <boost/math/ccmath/isnan.hpp>

View File

@@ -7,13 +7,14 @@
#define BOOST_MATH_CCMATH_FMA_HPP
#include <boost/math/ccmath/detail/config.hpp>
#include <boost/math/ccmath/isinf.hpp>
#include <boost/math/ccmath/isnan.hpp>
#ifdef BOOST_MATH_NO_CCMATH
#error "The header <boost/math/fma.hpp> can only be used in C++17 and later."
#endif
#include <boost/math/ccmath/isinf.hpp>
#include <boost/math/ccmath/isnan.hpp>
namespace boost::math::ccmath {
namespace detail {

View File

@@ -6,10 +6,12 @@
#ifndef BOOST_MATH_CCMATH_FMAX_HPP
#define BOOST_MATH_CCMATH_FMAX_HPP
#include <cmath>
#include <limits>
#include <type_traits>
#include <boost/math/tools/is_constant_evaluated.hpp>
#include <boost/math/ccmath/detail/config.hpp>
#ifdef BOOST_MATH_NO_CCMATH
#error "The header <boost/math/fmax.hpp> can only be used in C++17 and later."
#endif
#include <boost/math/tools/promotion.hpp>
#include <boost/math/ccmath/isnan.hpp>

View File

@@ -6,10 +6,12 @@
#ifndef BOOST_MATH_CCMATH_FMIN_HPP
#define BOOST_MATH_CCMATH_FMIN_HPP
#include <cmath>
#include <limits>
#include <type_traits>
#include <boost/math/tools/is_constant_evaluated.hpp>
#include <boost/math/ccmath/detail/config.hpp>
#ifdef BOOST_MATH_NO_CCMATH
#error "The header <boost/math/fmin.hpp> can only be used in C++17 and later."
#endif
#include <boost/math/tools/promotion.hpp>
#include <boost/math/ccmath/isnan.hpp>

View File

@@ -6,12 +6,14 @@
#ifndef BOOST_MATH_CCMATH_FMOD_HPP
#define BOOST_MATH_CCMATH_FMOD_HPP
#include <cmath>
#include <boost/math/ccmath/detail/config.hpp>
#ifdef BOOST_MATH_NO_CCMATH
#error "The header <boost/math/fmod.hpp> can only be used in C++17 and later."
#endif
#include <cstdint>
#include <limits>
#include <type_traits>
#include <boost/math/tools/promotion.hpp>
#include <boost/math/tools/is_constant_evaluated.hpp>
#include <boost/math/ccmath/abs.hpp>
#include <boost/math/ccmath/isinf.hpp>
#include <boost/math/ccmath/isnan.hpp>

View File

@@ -6,10 +6,12 @@
#ifndef BOOST_MATH_CCMATH_FPCLASSIFY
#define BOOST_MATH_CCMATH_FPCLASSIFY
#include <cmath>
#include <limits>
#include <type_traits>
#include <boost/math/tools/is_constant_evaluated.hpp>
#include <boost/math/ccmath/detail/config.hpp>
#ifdef BOOST_MATH_NO_CCMATH
#error "The header <boost/math/fpclassify.hpp> can only be used in C++17 and later."
#endif
#include <boost/math/special_functions/fpclassify.hpp>
#include <boost/math/ccmath/abs.hpp>
#include <boost/math/ccmath/isinf.hpp>

View File

@@ -7,9 +7,12 @@
#ifndef BOOST_MATH_CCMATH_FREXP_HPP
#define BOOST_MATH_CCMATH_FREXP_HPP
#include <cmath>
#include <limits>
#include <type_traits>
#include <boost/math/ccmath/detail/config.hpp>
#ifdef BOOST_MATH_NO_CCMATH
#error "The header <boost/math/frexp.hpp> can only be used in C++17 and later."
#endif
#include <boost/math/ccmath/isinf.hpp>
#include <boost/math/ccmath/isnan.hpp>
#include <boost/math/ccmath/isfinite.hpp>

View File

@@ -7,12 +7,14 @@
#ifndef BOOST_MATH_CCMATH_HYPOT_HPP
#define BOOST_MATH_CCMATH_HYPOT_HPP
#include <cmath>
#include <boost/math/ccmath/detail/config.hpp>
#ifdef BOOST_MATH_NO_CCMATH
#error "The header <boost/math/hypot.hpp> can only be used in C++17 and later."
#endif
#include <array>
#include <limits>
#include <type_traits>
#include <boost/math/tools/config.hpp>
#include <boost/math/tools/is_constant_evaluated.hpp>
#include <boost/math/tools/promotion.hpp>
#include <boost/math/ccmath/sqrt.hpp>
#include <boost/math/ccmath/abs.hpp>

View File

@@ -6,9 +6,12 @@
#ifndef BOOST_MATH_CCMATH_ILOGB_HPP
#define BOOST_MATH_CCMATH_ILOGB_HPP
#include <cmath>
#include <type_traits>
#include <boost/math/tools/is_constant_evaluated.hpp>
#include <boost/math/ccmath/detail/config.hpp>
#ifdef BOOST_MATH_NO_CCMATH
#error "The header <boost/math/ilogb.hpp> can only be used in C++17 and later."
#endif
#include <boost/math/ccmath/logb.hpp>
#include <boost/math/ccmath/isinf.hpp>
#include <boost/math/ccmath/isnan.hpp>

View File

@@ -6,20 +6,15 @@
#ifndef BOOST_MATH_CCMATH_ISFINITE
#define BOOST_MATH_CCMATH_ISFINITE
#include <cmath>
#include <type_traits>
#include <boost/math/tools/is_constant_evaluated.hpp>
#include <boost/math/ccmath/detail/config.hpp>
#ifdef BOOST_MATH_NO_CCMATH
#error "The header <boost/math/isfinite.hpp> can only be used in C++17 and later."
#endif
#include <boost/math/ccmath/isinf.hpp>
#include <boost/math/ccmath/isnan.hpp>
#include <boost/math/tools/is_standalone.hpp>
#ifndef BOOST_MATH_STANDALONE
#include <boost/config.hpp>
#ifdef BOOST_NO_CXX17_IF_CONSTEXPR
#error "The header <boost/math/norms.hpp> can only be used in C++17 and later."
#endif
#endif
namespace boost::math::ccmath {
template <typename T>

View File

@@ -6,9 +6,12 @@
#ifndef BOOST_MATH_CCMATH_ISGREATER_HPP
#define BOOST_MATH_CCMATH_ISGREATER_HPP
#include <cmath>
#include <limits>
#include <boost/math/tools/is_constant_evaluated.hpp>
#include <boost/math/ccmath/detail/config.hpp>
#ifdef BOOST_MATH_NO_CCMATH
#error "The header <boost/math/isgreater.hpp> can only be used in C++17 and later."
#endif
#include <boost/math/ccmath/isnan.hpp>
namespace boost::math::ccmath {

View File

@@ -6,9 +6,12 @@
#ifndef BOOST_MATH_CCMATH_ISGREATEREQUAL_HPP
#define BOOST_MATH_CCMATH_ISGREATEREQUAL_HPP
#include <cmath>
#include <limits>
#include <boost/math/tools/is_constant_evaluated.hpp>
#include <boost/math/ccmath/detail/config.hpp>
#ifdef BOOST_MATH_NO_CCMATH
#error "The header <boost/math/islessequal.hpp> can only be used in C++17 and later."
#endif
#include <boost/math/ccmath/isnan.hpp>
namespace boost::math::ccmath {

View File

@@ -6,9 +6,12 @@
#ifndef BOOST_MATH_CCMATH_ISLESS_HPP
#define BOOST_MATH_CCMATH_ISLESS_HPP
#include <cmath>
#include <limits>
#include <boost/math/tools/is_constant_evaluated.hpp>
#include <boost/math/ccmath/detail/config.hpp>
#ifdef BOOST_MATH_NO_CCMATH
#error "The header <boost/math/isless.hpp> can only be used in C++17 and later."
#endif
#include <boost/math/ccmath/isnan.hpp>
namespace boost::math::ccmath {

View File

@@ -6,9 +6,12 @@
#ifndef BOOST_MATH_CCMATH_ISLESSEQUAL_HPP
#define BOOST_MATH_CCMATH_ISLESSEQUAL_HPP
#include <cmath>
#include <limits>
#include <boost/math/tools/is_constant_evaluated.hpp>
#include <boost/math/ccmath/detail/config.hpp>
#ifdef BOOST_MATH_NO_CCMATH
#error "The header <boost/math/islessequal.hpp> can only be used in C++17 and later."
#endif
#include <boost/math/ccmath/isnan.hpp>
namespace boost::math::ccmath {

View File

@@ -7,14 +7,15 @@
#define BOOST_MATH_ISNORMAL_HPP
#include <boost/math/ccmath/detail/config.hpp>
#ifdef BOOST_MATH_NO_CCMATH
#error "The header <boost/math/isnormal.hpp> can only be used in C++17 and later."
#endif
#include <boost/math/ccmath/abs.hpp>
#include <boost/math/ccmath/isinf.hpp>
#include <boost/math/ccmath/isnan.hpp>
#ifdef BOOST_MATH_NO_CCMATH
#error "The header <boost/math/abs.hpp> can only be used in C++17 and later."
#endif
namespace boost::math::ccmath {
template <typename T>

View File

@@ -6,8 +6,12 @@
#ifndef BOOST_MATH_CCMATH_ISUNORDERED_HPP
#define BOOST_MATH_CCMATH_ISUNORDERED_HPP
#include <cmath>
#include <boost/math/tools/is_constant_evaluated.hpp>
#include <boost/math/ccmath/detail/config.hpp>
#ifdef BOOST_MATH_NO_CCMATH
#error "The header <boost/math/isunordered.hpp> can only be used in C++17 and later."
#endif
#include <boost/math/ccmath/isnan.hpp>
namespace boost::math::ccmath {

View File

@@ -7,8 +7,13 @@
#ifndef BOOST_MATH_CCMATH_LDEXP_HPP
#define BOOST_MATH_CCMATH_LDEXP_HPP
#include <stdexcept>
#include <boost/math/ccmath/detail/config.hpp>
#ifdef BOOST_MATH_NO_CCMATH
#error "The header <boost/math/ldexp.hpp> can only be used in C++17 and later."
#endif
#include <stdexcept>
#include <boost/math/ccmath/abs.hpp>
#include <boost/math/ccmath/isinf.hpp>
#include <boost/math/ccmath/isnan.hpp>

View File

@@ -6,10 +6,12 @@
#ifndef BOOST_MATH_CCMATH_LOGB_HPP
#define BOOST_MATH_CCMATH_LOGB_HPP
#include <cmath>
#include <limits>
#include <type_traits>
#include <boost/math/tools/is_constant_evaluated.hpp>
#include <boost/math/ccmath/detail/config.hpp>
#ifdef BOOST_MATH_NO_CCMATH
#error "The header <boost/math/logb.hpp> can only be used in C++17 and later."
#endif
#include <boost/math/ccmath/frexp.hpp>
#include <boost/math/ccmath/isinf.hpp>
#include <boost/math/ccmath/isnan.hpp>

View File

@@ -6,10 +6,12 @@
#ifndef BOOST_MATH_CCMATH_MODF_HPP
#define BOOST_MATH_CCMATH_MODF_HPP
#include <cmath>
#include <limits>
#include <type_traits>
#include <boost/math/tools/is_constant_evaluated.hpp>
#include <boost/math/ccmath/detail/config.hpp>
#ifdef BOOST_MATH_NO_CCMATH
#error "The header <boost/math/modf.hpp> can only be used in C++17 and later."
#endif
#include <boost/math/ccmath/abs.hpp>
#include <boost/math/ccmath/isinf.hpp>
#include <boost/math/ccmath/isnan.hpp>

View File

@@ -7,17 +7,19 @@
#ifndef BOOST_MATH_CCMATH_NEXT_HPP
#define BOOST_MATH_CCMATH_NEXT_HPP
#include <cmath>
#include <boost/math/ccmath/detail/config.hpp>
#ifdef BOOST_MATH_NO_CCMATH
#error "The header <boost/math/next.hpp> can only be used in C++17 and later."
#endif
#include <stdexcept>
#include <cfloat>
#include <cstdint>
#include <limits>
#include <type_traits>
#include <stdexcept>
#include <boost/math/policies/policy.hpp>
#include <boost/math/policies/error_handling.hpp>
#include <boost/math/tools/assert.hpp>
#include <boost/math/tools/config.hpp>
#include <boost/math/tools/is_constant_evaluated.hpp>
#include <boost/math/tools/precision.hpp>
#include <boost/math/tools/traits.hpp>
#include <boost/math/tools/promotion.hpp>

View File

@@ -6,12 +6,14 @@
#ifndef BOOST_MATH_CCMATH_REMAINDER_HPP
#define BOOST_MATH_CCMATH_REMAINDER_HPP
#include <cmath>
#include <boost/math/ccmath/detail/config.hpp>
#ifdef BOOST_MATH_NO_CCMATH
#error "The header <boost/math/remainder.hpp> can only be used in C++17 and later."
#endif
#include <cstdint>
#include <limits>
#include <type_traits>
#include <boost/math/tools/promotion.hpp>
#include <boost/math/tools/is_constant_evaluated.hpp>
#include <boost/math/ccmath/abs.hpp>
#include <boost/math/ccmath/isinf.hpp>
#include <boost/math/ccmath/isnan.hpp>

View File

@@ -8,15 +8,16 @@
#include <stdexcept>
#include <boost/math/ccmath/detail/config.hpp>
#include <boost/math/ccmath/abs.hpp>
#include <boost/math/ccmath/isinf.hpp>
#include <boost/math/ccmath/isnan.hpp>
#include <boost/math/ccmath/modf.hpp>
#ifdef BOOST_MATH_NO_CCMATH
#error "The header <boost/math/round.hpp> can only be used in C++17 and later."
#endif
#include <boost/math/ccmath/abs.hpp>
#include <boost/math/ccmath/isinf.hpp>
#include <boost/math/ccmath/isnan.hpp>
#include <boost/math/ccmath/modf.hpp>
namespace boost::math::ccmath {
namespace detail {

View File

@@ -6,10 +6,13 @@
#ifndef BOOST_MATH_CCMATH_SCALBLN_HPP
#define BOOST_MATH_CCMATH_SCALBLN_HPP
#include <cmath>
#include <boost/math/ccmath/detail/config.hpp>
#ifdef BOOST_MATH_NO_CCMATH
#error "The header <boost/math/scalbln.hpp> can only be used in C++17 and later."
#endif
#include <cfloat>
#include <type_traits>
#include <boost/math/tools/is_constant_evaluated.hpp>
#include <boost/math/ccmath/scalbn.hpp>
#include <boost/math/ccmath/abs.hpp>
#include <boost/math/ccmath/isinf.hpp>

View File

@@ -7,11 +7,13 @@
#ifndef BOOST_MATH_CCMATH_SCALBN_HPP
#define BOOST_MATH_CCMATH_SCALBN_HPP
#include <cmath>
#include <boost/math/ccmath/detail/config.hpp>
#ifdef BOOST_MATH_NO_CCMATH
#error "The header <boost/math/scalbn.hpp> can only be used in C++17 and later."
#endif
#include <cfloat>
#include <limits>
#include <type_traits>
#include <boost/math/tools/is_constant_evaluated.hpp>
#include <boost/math/ccmath/abs.hpp>
#include <boost/math/ccmath/isinf.hpp>
#include <boost/math/ccmath/isnan.hpp>

View File

@@ -6,17 +6,18 @@
#ifndef BOOST_MATH_CCMATH_SIGNBIT_HPP
#define BOOST_MATH_CCMATH_SIGNBIT_HPP
#include <cstdint>
#include <boost/math/tools/assert.hpp>
#include <boost/math/ccmath/detail/config.hpp>
#include <boost/math/special_functions/detail/fp_traits.hpp>
#include <boost/math/ccmath/isnan.hpp>
#include <boost/math/ccmath/abs.hpp>
#ifdef BOOST_MATH_NO_CCMATH
#error "The header <boost/math/signbit.hpp> can only be used in C++17 and later."
#endif
#include <cstdint>
#include <boost/math/tools/assert.hpp>
#include <boost/math/special_functions/detail/fp_traits.hpp>
#include <boost/math/ccmath/isnan.hpp>
#include <boost/math/ccmath/abs.hpp>
#ifdef __has_include
# if __has_include(<bit>)
# include <bit>

View File

@@ -8,9 +8,12 @@
#ifndef BOOST_MATH_CCMATH_SQRT
#define BOOST_MATH_CCMATH_SQRT
#include <cmath>
#include <limits>
#include <type_traits>
#include <boost/math/ccmath/detail/config.hpp>
#ifdef BOOST_MATH_NO_CCMATH
#error "The header <boost/math/sqrt.hpp> can only be used in C++17 and later."
#endif
#include <boost/math/ccmath/abs.hpp>
#include <boost/math/ccmath/isnan.hpp>
#include <boost/math/ccmath/isinf.hpp>

View File

@@ -6,9 +6,12 @@
#ifndef BOOST_MATH_CCMATH_TRUNC_HPP
#define BOOST_MATH_CCMATH_TRUNC_HPP
#include <cmath>
#include <type_traits>
#include <boost/math/tools/is_constant_evaluated.hpp>
#include <boost/math/ccmath/detail/config.hpp>
#ifdef BOOST_MATH_NO_CCMATH
#error "The header <boost/math/trunc.hpp> can only be used in C++17 and later."
#endif
#include <boost/math/ccmath/abs.hpp>
#include <boost/math/ccmath/isinf.hpp>
#include <boost/math/ccmath/isnan.hpp>