xref: /llvm-project/libcxx/include/cfloat (revision b9a2658a3e8bd13b0f9e7a8a440832a95b377216)
1// -*- C++ -*-
2//===----------------------------------------------------------------------===//
3//
4// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5// See https://llvm.org/LICENSE.txt for license information.
6// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7//
8//===----------------------------------------------------------------------===//
9
10#ifndef _LIBCPP_CFLOAT
11#define _LIBCPP_CFLOAT
12
13/*
14    cfloat synopsis
15
16Macros:
17
18    FLT_ROUNDS
19    FLT_EVAL_METHOD     // C99
20    FLT_RADIX
21
22    FLT_HAS_SUBNORM     // C11
23    DBL_HAS_SUBNORM     // C11
24    LDBL_HAS_SUBNORM    // C11
25
26    FLT_MANT_DIG
27    DBL_MANT_DIG
28    LDBL_MANT_DIG
29
30    DECIMAL_DIG         // C99
31    FLT_DECIMAL_DIG     // C11
32    DBL_DECIMAL_DIG     // C11
33    LDBL_DECIMAL_DIG    // C11
34
35    FLT_DIG
36    DBL_DIG
37    LDBL_DIG
38
39    FLT_MIN_EXP
40    DBL_MIN_EXP
41    LDBL_MIN_EXP
42
43    FLT_MIN_10_EXP
44    DBL_MIN_10_EXP
45    LDBL_MIN_10_EXP
46
47    FLT_MAX_EXP
48    DBL_MAX_EXP
49    LDBL_MAX_EXP
50
51    FLT_MAX_10_EXP
52    DBL_MAX_10_EXP
53    LDBL_MAX_10_EXP
54
55    FLT_MAX
56    DBL_MAX
57    LDBL_MAX
58
59    FLT_EPSILON
60    DBL_EPSILON
61    LDBL_EPSILON
62
63    FLT_MIN
64    DBL_MIN
65    LDBL_MIN
66
67    FLT_TRUE_MIN        // C11
68    DBL_TRUE_MIN        // C11
69    LDBL_TRUE_MIN       // C11
70*/
71
72#if __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
73#  include <__cxx03/cfloat>
74#else
75#  include <__config>
76
77#  include <float.h>
78
79#  ifndef _LIBCPP_FLOAT_H
80#   error <cfloat> tried including <float.h> but didn't find libc++'s <float.h> header. \
81          This usually means that your header search paths are not configured properly. \
82          The header search paths should contain the C++ Standard Library headers before \
83          any C Standard Library, and you are probably using compiler flags that make that \
84          not be the case.
85#  endif
86
87#  if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
88#    pragma GCC system_header
89#  endif
90#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
91
92#endif // _LIBCPP_CFLOAT
93