cstdfloat.hpp 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. ///////////////////////////////////////////////////////////////////////////////
  2. // Copyright Christopher Kormanyos 2014.
  3. // Copyright John Maddock 2014.
  4. // Copyright Paul Bristow 2014.
  5. // Distributed under the Boost Software License,
  6. // Version 1.0. (See accompanying file LICENSE_1_0.txt
  7. // or copy at http://www.boost.org/LICENSE_1_0.txt)
  8. //
  9. // <boost/cstdfloat.hpp> implements floating-point typedefs having
  10. // specified widths, as described in N3626 (proposed for C++14).
  11. // See: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3626.pdf
  12. #ifndef _BOOST_CSTDFLOAT_2014_01_09_HPP_
  13. #define _BOOST_CSTDFLOAT_2014_01_09_HPP_
  14. // Include the floating-point type definitions.
  15. #include <boost/math/cstdfloat/cstdfloat_types.hpp>
  16. // Support a specialization of std::numeric_limits<> for the wrapped quadmath library (if available).
  17. #if !defined(BOOST_CSTDFLOAT_NO_LIBQUADMATH_LIMITS)
  18. #include <boost/math/cstdfloat/cstdfloat_limits.hpp>
  19. #endif
  20. // Support <cmath> functions for the wrapped quadmath library (if available).
  21. #if !defined(BOOST_CSTDFLOAT_NO_LIBQUADMATH_CMATH)
  22. #include <boost/math/cstdfloat/cstdfloat_cmath.hpp>
  23. #endif
  24. // Support I/O stream operations for the wrapped quadmath library (if available).
  25. #if !defined(BOOST_CSTDFLOAT_NO_LIBQUADMATH_IOSTREAM)
  26. #if defined(BOOST_CSTDFLOAT_NO_LIBQUADMATH_CMATH)
  27. #error You can not use <boost/math/cstdfloat/cstdfloat_iostream.hpp> with BOOST_CSTDFLOAT_NO_LIBQUADMATH_CMATH defined.
  28. #endif
  29. #include <boost/math/cstdfloat/cstdfloat_iostream.hpp>
  30. #endif
  31. // Support a specialization of std::complex<> for the wrapped quadmath library (if available).
  32. #if !defined(BOOST_CSTDFLOAT_NO_LIBQUADMATH_COMPLEX)
  33. #if defined(BOOST_CSTDFLOAT_NO_LIBQUADMATH_LIMITS)
  34. #error You can not use <boost/math/cstdfloat/cstdfloat_complex.hpp> with BOOST_CSTDFLOAT_NO_LIBQUADMATH_LIMITS defined.
  35. #endif
  36. #if defined(BOOST_CSTDFLOAT_NO_LIBQUADMATH_CMATH)
  37. #error You can not use <boost/math/cstdfloat/cstdfloat_complex.hpp> with BOOST_CSTDFLOAT_NO_LIBQUADMATH_CMATH defined.
  38. #endif
  39. #if defined(BOOST_CSTDFLOAT_NO_LIBQUADMATH_IOSTREAM)
  40. #error You can not use <boost/math/cstdfloat/cstdfloat_complex.hpp> with BOOST_CSTDFLOAT_NO_LIBQUADMATH_IOSTREAM defined.
  41. #endif
  42. #include <boost/math/cstdfloat/cstdfloat_complex.hpp>
  43. #endif
  44. // Undefine BOOST_NO_FLOAT128_T because this constant is not meant for public use.
  45. #if defined(BOOST_CSTDFLOAT_HAS_INTERNAL_FLOAT128_T)
  46. #undef BOOST_CSTDFLOAT_HAS_INTERNAL_FLOAT128_T
  47. #endif
  48. #endif // _BOOST_CSTDFLOAT_2014_01_09_HPP_