FastLED
3.9.15
Loading...
Searching...
No Matches
static_constexpr_defs.cpp.hpp
Go to the documentation of this file.
1
// ok no header
2
// Static constexpr member definitions for C++11 compatibility
3
// In C++11, static constexpr members that are ODR-used need out-of-class definitions
4
// in a single translation unit to avoid duplicate symbol errors.
5
//
6
// NOTE: After converting most traits to use enum instead of static constexpr,
7
// only a few members still need definitions here (those that use template expressions
8
// or other complex initializers that can't be put in enums).
9
10
#include "
fl/stl/type_traits.h
"
11
#include "
fl/stl/limits.h
"
12
// IWYU pragma: begin_keep
13
#include "platforms/shared/spi_bitbang/spi_block_8.h"
// ok platform headers
14
#include "platforms/shared/spi_bitbang/spi_block_16.h"
// ok platform headers
15
16
// IWYU pragma: end_keep
17
namespace
fl
{
18
19
// numeric_limits - Only define static constexpr members that use template expressions
20
// (enum members don't need definitions)
21
22
// char - is_signed uses expression, digits/digits10 use template expressions
23
constexpr
bool
numeric_limits<char>::is_signed
;
24
constexpr
int
numeric_limits<char>::digits
;
25
constexpr
int
numeric_limits<char>::digits10
;
26
27
// signed char
28
constexpr
int
numeric_limits<signed char>::digits
;
29
constexpr
int
numeric_limits<signed char>::digits10
;
30
31
// unsigned char
32
constexpr
int
numeric_limits<unsigned char>::digits
;
33
constexpr
int
numeric_limits<unsigned char>::digits10
;
34
35
// short
36
constexpr
int
numeric_limits<short>::digits
;
37
constexpr
int
numeric_limits<short>::digits10
;
38
39
// unsigned short
40
constexpr
int
numeric_limits<unsigned short>::digits
;
41
constexpr
int
numeric_limits<unsigned short>::digits10
;
42
43
// int
44
constexpr
int
numeric_limits<int>::digits
;
45
constexpr
int
numeric_limits<int>::digits10
;
46
47
// unsigned int
48
constexpr
int
numeric_limits<unsigned int>::digits
;
49
constexpr
int
numeric_limits<unsigned int>::digits10
;
50
51
// long
52
constexpr
int
numeric_limits<long>::digits
;
53
constexpr
int
numeric_limits<long>::digits10
;
54
55
// unsigned long
56
constexpr
int
numeric_limits<unsigned long>::digits
;
57
constexpr
int
numeric_limits<unsigned long>::digits10
;
58
59
// long long
60
constexpr
int
numeric_limits<long long>::digits
;
61
constexpr
int
numeric_limits<long long>::digits10
;
62
63
// unsigned long long
64
constexpr
int
numeric_limits<unsigned long long>::digits
;
65
constexpr
int
numeric_limits<unsigned long long>::digits10
;
66
67
// float - static constexpr members
68
constexpr
int
numeric_limits<float>::max_digits10
;
69
constexpr
int
numeric_limits<float>::max_exponent
;
70
constexpr
int
numeric_limits<float>::max_exponent10
;
71
constexpr
int
numeric_limits<float>::min_exponent
;
72
constexpr
int
numeric_limits<float>::min_exponent10
;
73
74
// double - static constexpr members
75
constexpr
int
numeric_limits<double>::max_digits10
;
76
constexpr
int
numeric_limits<double>::max_exponent
;
77
constexpr
int
numeric_limits<double>::max_exponent10
;
78
constexpr
int
numeric_limits<double>::min_exponent
;
79
constexpr
int
numeric_limits<double>::min_exponent10
;
80
81
// type_rank - static constexpr members
82
template
<
typename
T>
constexpr
int
type_rank<T>::value
;
83
constexpr
int
type_rank<bool>::value
;
84
constexpr
int
type_rank<signed char>::value
;
85
constexpr
int
type_rank<unsigned char>::value
;
86
constexpr
int
type_rank<char>::value
;
87
constexpr
int
type_rank<short>::value
;
88
constexpr
int
type_rank<unsigned short>::value
;
89
constexpr
int
type_rank<int>::value
;
90
constexpr
int
type_rank<unsigned int>::value
;
91
constexpr
int
type_rank<long>::value
;
92
constexpr
int
type_rank<unsigned long>::value
;
93
constexpr
int
type_rank<long long>::value
;
94
constexpr
int
type_rank<unsigned long long>::value
;
95
constexpr
int
type_rank<float>::value
;
96
constexpr
int
type_rank<double>::value
;
97
constexpr
int
type_rank<long double>::value
;
98
99
// SpiBlock8
100
constexpr
int
SpiBlock8::NUM_DATA_PINS;
101
constexpr
u16 SpiBlock8::MAX_BUFFER_SIZE;
102
103
// SpiBlock16
104
constexpr
int
SpiBlock16::NUM_DATA_PINS;
105
constexpr
u16 SpiBlock16::MAX_BUFFER_SIZE;
106
107
}
// namespace fl
limits.h
fl
Base definition for an LED controller.
Definition
crgb.hpp:179
fl::numeric_limits::digits10
@ digits10
Definition
limits.h:105
fl::numeric_limits::is_signed
@ is_signed
Definition
limits.h:98
fl::numeric_limits::digits
@ digits
Definition
limits.h:104
fl::numeric_limits
Definition
limits.h:96
fl::type_rank::value
static constexpr int value
Definition
type_traits.h:631
type_traits.h
fl
system
static_constexpr_defs.cpp.hpp
Generated on Tue Jun 16 2026 00:07:00 for FastLED by
1.13.2