tetl
0.1.0
Embedded Template Library
Loading...
Searching...
No Matches
defines.hpp
Go to the documentation of this file.
1
// SPDX-License-Identifier: BSL-1.0
2
3
#ifndef TETL_CLIMITS_DEFINES_HPP
4
#define TETL_CLIMITS_DEFINES_HPP
5
6
#if __has_include(<limits.h>)
7
#include <limits.h>
8
#else
9
10
#ifndef MB_LEN_MAX
11
#define MB_LEN_MAX 1
12
#endif
13
14
#define CHAR_BIT __CHAR_BIT__
15
16
#ifdef __CHAR_UNSIGNED__
17
#define CHAR_MIN 0
18
#define CHAR_MAX UCHAR_MAX
19
#else
20
#define CHAR_MIN SCHAR_MIN
21
#define CHAR_MAX __SCHAR_MAX__
22
#endif
23
24
#define SCHAR_MAX __SCHAR_MAX__
25
#define SHRT_MAX __SHRT_MAX__
26
#define INT_MAX __INT_MAX__
27
#define LONG_MAX __LONG_MAX__
28
29
#define SCHAR_MIN (-__SCHAR_MAX__ - 1)
30
#define SHRT_MIN (-__SHRT_MAX__ - 1)
31
#define INT_MIN (-__INT_MAX__ - 1)
32
#define LONG_MIN (-__LONG_MAX__ - 1L)
33
34
#define UCHAR_MAX (static_cast<unsigned char>(__SCHAR_MAX__) * 2 + 1)
35
#define USHRT_MAX (static_cast<unsigned short>(__SHRT_MAX__) * 2 + 1)
36
#define UINT_MAX (__INT_MAX__ * 2U + 1U)
37
#define ULONG_MAX (__LONG_MAX__ * 2UL + 1UL)
38
39
#if __STDC_VERSION__ >= 199901L || __cplusplus >= 201103L
40
#undef LLONG_MIN
41
#undef LLONG_MAX
42
#undef ULLONG_MAX
43
#define LLONG_MAX __LONG_LONG_MAX__
44
#define LLONG_MIN (-__LONG_LONG_MAX__ - 1LL)
45
#define ULLONG_MAX (__LONG_LONG_MAX__ * 2ULL + 1ULL)
46
#endif
47
48
#endif
// has_include <limits.h>
49
50
#endif
// TETL_CLIMITS_DEFINES_HPP
include
etl
_climits
defines.hpp
Generated on Sat Mar 8 2025 16:19:59 for tetl by
1.14.0