pputl  0.2.1
pputl Preprocessor Utilities
dec.h
Go to the documentation of this file.
1 #ifndef PPUTL_DEC_H_INCLUDED
2 #define PPUTL_DEC_H_INCLUDED
3 #///// c++20
4 #///////////////////////////////////////////////////////////////////////////////
5 #/// @brief \link PPUTL_DEC PPUTL_DEC\endlink -
6 #/// decrement a number [1, 256)
7 #/// @file
8 #// __ ___
9 #// /\ \__/\_ \
10 #// _____ _____ __ __\ \ ,_\//\ \
11 #// /\ '__`\/\ '__`\/\ \/\ \\ \ \/ \ \ \
12 #// \ \ \_\ \ \ \_\ \ \ \_\ \\ \ \_ \_\ \_
13 #// \ \ ,__/\ \ ,__/\ \____/ \ \__\/\____\
14 #// \ \ \ \ \ \ \/___/ \/__/\/____/
15 #// \/_/ \/_/
16 #//
17 #// pputl Preprocessor Utilities
18 #// Copyright (C) 2020 Justin Collier <m@jpcx.dev>
19 #//
20 #// This program is free software: you can redistribute it and/or modify
21 #// it under the terms of the GNU General Public License as published by
22 #// the Free Software Foundation, either version 3 of the License, or
23 #// (at your option) any later version.
24 #//
25 #// This program is distributed in the hope that it will be useful,
26 #// but WITHOUT ANY WARRANTY; without even the internalied warranty of
27 #// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
28 #// GNU General Public License for more details.
29 #// //
30 #// You should have received a copy of the GNU General Public License ///
31 #// along with this program. If not, see <https://www.gnu.org/licenses/>. ////
32 #///////////////////////////////////////////////////////////////////////////////
33 #
34 #include "pputl/cat.h"
35 #include "pputl/eq.h"
36 #include "pputl/not.h"
37 #
38 #/// decrement a number [1, 256)
39 #/// @ingroup pputl
40 #/// @anchor PPUTL_DEC
41 #/// @param n [1, 256)
42 #define PPUTL_DEC(n) PPUTL_CAT(PPUTL_DETAIL_DEC_, n)
43 #
44 #define PPUTL_DETAIL_DEC_1 0
45 #define PPUTL_DETAIL_DEC_2 1
46 #define PPUTL_DETAIL_DEC_3 2
47 #define PPUTL_DETAIL_DEC_4 3
48 #define PPUTL_DETAIL_DEC_5 4
49 #define PPUTL_DETAIL_DEC_6 5
50 #define PPUTL_DETAIL_DEC_7 6
51 #define PPUTL_DETAIL_DEC_8 7
52 #define PPUTL_DETAIL_DEC_9 8
53 #define PPUTL_DETAIL_DEC_10 9
54 #define PPUTL_DETAIL_DEC_11 10
55 #define PPUTL_DETAIL_DEC_12 11
56 #define PPUTL_DETAIL_DEC_13 12
57 #define PPUTL_DETAIL_DEC_14 13
58 #define PPUTL_DETAIL_DEC_15 14
59 #define PPUTL_DETAIL_DEC_16 15
60 #define PPUTL_DETAIL_DEC_17 16
61 #define PPUTL_DETAIL_DEC_18 17
62 #define PPUTL_DETAIL_DEC_19 18
63 #define PPUTL_DETAIL_DEC_20 19
64 #define PPUTL_DETAIL_DEC_21 20
65 #define PPUTL_DETAIL_DEC_22 21
66 #define PPUTL_DETAIL_DEC_23 22
67 #define PPUTL_DETAIL_DEC_24 23
68 #define PPUTL_DETAIL_DEC_25 24
69 #define PPUTL_DETAIL_DEC_26 25
70 #define PPUTL_DETAIL_DEC_27 26
71 #define PPUTL_DETAIL_DEC_28 27
72 #define PPUTL_DETAIL_DEC_29 28
73 #define PPUTL_DETAIL_DEC_30 29
74 #define PPUTL_DETAIL_DEC_31 30
75 #define PPUTL_DETAIL_DEC_32 31
76 #define PPUTL_DETAIL_DEC_33 32
77 #define PPUTL_DETAIL_DEC_34 33
78 #define PPUTL_DETAIL_DEC_35 34
79 #define PPUTL_DETAIL_DEC_36 35
80 #define PPUTL_DETAIL_DEC_37 36
81 #define PPUTL_DETAIL_DEC_38 37
82 #define PPUTL_DETAIL_DEC_39 38
83 #define PPUTL_DETAIL_DEC_40 39
84 #define PPUTL_DETAIL_DEC_41 40
85 #define PPUTL_DETAIL_DEC_42 41
86 #define PPUTL_DETAIL_DEC_43 42
87 #define PPUTL_DETAIL_DEC_44 43
88 #define PPUTL_DETAIL_DEC_45 44
89 #define PPUTL_DETAIL_DEC_46 45
90 #define PPUTL_DETAIL_DEC_47 46
91 #define PPUTL_DETAIL_DEC_48 47
92 #define PPUTL_DETAIL_DEC_49 48
93 #define PPUTL_DETAIL_DEC_50 49
94 #define PPUTL_DETAIL_DEC_51 50
95 #define PPUTL_DETAIL_DEC_52 51
96 #define PPUTL_DETAIL_DEC_53 52
97 #define PPUTL_DETAIL_DEC_54 53
98 #define PPUTL_DETAIL_DEC_55 54
99 #define PPUTL_DETAIL_DEC_56 55
100 #define PPUTL_DETAIL_DEC_57 56
101 #define PPUTL_DETAIL_DEC_58 57
102 #define PPUTL_DETAIL_DEC_59 58
103 #define PPUTL_DETAIL_DEC_60 59
104 #define PPUTL_DETAIL_DEC_61 60
105 #define PPUTL_DETAIL_DEC_62 61
106 #define PPUTL_DETAIL_DEC_63 62
107 #define PPUTL_DETAIL_DEC_64 63
108 #define PPUTL_DETAIL_DEC_65 64
109 #define PPUTL_DETAIL_DEC_66 65
110 #define PPUTL_DETAIL_DEC_67 66
111 #define PPUTL_DETAIL_DEC_68 67
112 #define PPUTL_DETAIL_DEC_69 68
113 #define PPUTL_DETAIL_DEC_70 69
114 #define PPUTL_DETAIL_DEC_71 70
115 #define PPUTL_DETAIL_DEC_72 71
116 #define PPUTL_DETAIL_DEC_73 72
117 #define PPUTL_DETAIL_DEC_74 73
118 #define PPUTL_DETAIL_DEC_75 74
119 #define PPUTL_DETAIL_DEC_76 75
120 #define PPUTL_DETAIL_DEC_77 76
121 #define PPUTL_DETAIL_DEC_78 77
122 #define PPUTL_DETAIL_DEC_79 78
123 #define PPUTL_DETAIL_DEC_80 79
124 #define PPUTL_DETAIL_DEC_81 80
125 #define PPUTL_DETAIL_DEC_82 81
126 #define PPUTL_DETAIL_DEC_83 82
127 #define PPUTL_DETAIL_DEC_84 83
128 #define PPUTL_DETAIL_DEC_85 84
129 #define PPUTL_DETAIL_DEC_86 85
130 #define PPUTL_DETAIL_DEC_87 86
131 #define PPUTL_DETAIL_DEC_88 87
132 #define PPUTL_DETAIL_DEC_89 88
133 #define PPUTL_DETAIL_DEC_90 89
134 #define PPUTL_DETAIL_DEC_91 90
135 #define PPUTL_DETAIL_DEC_92 91
136 #define PPUTL_DETAIL_DEC_93 92
137 #define PPUTL_DETAIL_DEC_94 93
138 #define PPUTL_DETAIL_DEC_95 94
139 #define PPUTL_DETAIL_DEC_96 95
140 #define PPUTL_DETAIL_DEC_97 96
141 #define PPUTL_DETAIL_DEC_98 97
142 #define PPUTL_DETAIL_DEC_99 98
143 #define PPUTL_DETAIL_DEC_100 99
144 #define PPUTL_DETAIL_DEC_101 100
145 #define PPUTL_DETAIL_DEC_102 101
146 #define PPUTL_DETAIL_DEC_103 102
147 #define PPUTL_DETAIL_DEC_104 103
148 #define PPUTL_DETAIL_DEC_105 104
149 #define PPUTL_DETAIL_DEC_106 105
150 #define PPUTL_DETAIL_DEC_107 106
151 #define PPUTL_DETAIL_DEC_108 107
152 #define PPUTL_DETAIL_DEC_109 108
153 #define PPUTL_DETAIL_DEC_110 109
154 #define PPUTL_DETAIL_DEC_111 110
155 #define PPUTL_DETAIL_DEC_112 111
156 #define PPUTL_DETAIL_DEC_113 112
157 #define PPUTL_DETAIL_DEC_114 113
158 #define PPUTL_DETAIL_DEC_115 114
159 #define PPUTL_DETAIL_DEC_116 115
160 #define PPUTL_DETAIL_DEC_117 116
161 #define PPUTL_DETAIL_DEC_118 117
162 #define PPUTL_DETAIL_DEC_119 118
163 #define PPUTL_DETAIL_DEC_120 119
164 #define PPUTL_DETAIL_DEC_121 120
165 #define PPUTL_DETAIL_DEC_122 121
166 #define PPUTL_DETAIL_DEC_123 122
167 #define PPUTL_DETAIL_DEC_124 123
168 #define PPUTL_DETAIL_DEC_125 124
169 #define PPUTL_DETAIL_DEC_126 125
170 #define PPUTL_DETAIL_DEC_127 126
171 #define PPUTL_DETAIL_DEC_128 127
172 #define PPUTL_DETAIL_DEC_129 128
173 #define PPUTL_DETAIL_DEC_130 129
174 #define PPUTL_DETAIL_DEC_131 130
175 #define PPUTL_DETAIL_DEC_132 131
176 #define PPUTL_DETAIL_DEC_133 132
177 #define PPUTL_DETAIL_DEC_134 133
178 #define PPUTL_DETAIL_DEC_135 134
179 #define PPUTL_DETAIL_DEC_136 135
180 #define PPUTL_DETAIL_DEC_137 136
181 #define PPUTL_DETAIL_DEC_138 137
182 #define PPUTL_DETAIL_DEC_139 138
183 #define PPUTL_DETAIL_DEC_140 139
184 #define PPUTL_DETAIL_DEC_141 140
185 #define PPUTL_DETAIL_DEC_142 141
186 #define PPUTL_DETAIL_DEC_143 142
187 #define PPUTL_DETAIL_DEC_144 143
188 #define PPUTL_DETAIL_DEC_145 144
189 #define PPUTL_DETAIL_DEC_146 145
190 #define PPUTL_DETAIL_DEC_147 146
191 #define PPUTL_DETAIL_DEC_148 147
192 #define PPUTL_DETAIL_DEC_149 148
193 #define PPUTL_DETAIL_DEC_150 149
194 #define PPUTL_DETAIL_DEC_151 150
195 #define PPUTL_DETAIL_DEC_152 151
196 #define PPUTL_DETAIL_DEC_153 152
197 #define PPUTL_DETAIL_DEC_154 153
198 #define PPUTL_DETAIL_DEC_155 154
199 #define PPUTL_DETAIL_DEC_156 155
200 #define PPUTL_DETAIL_DEC_157 156
201 #define PPUTL_DETAIL_DEC_158 157
202 #define PPUTL_DETAIL_DEC_159 158
203 #define PPUTL_DETAIL_DEC_160 159
204 #define PPUTL_DETAIL_DEC_161 160
205 #define PPUTL_DETAIL_DEC_162 161
206 #define PPUTL_DETAIL_DEC_163 162
207 #define PPUTL_DETAIL_DEC_164 163
208 #define PPUTL_DETAIL_DEC_165 164
209 #define PPUTL_DETAIL_DEC_166 165
210 #define PPUTL_DETAIL_DEC_167 166
211 #define PPUTL_DETAIL_DEC_168 167
212 #define PPUTL_DETAIL_DEC_169 168
213 #define PPUTL_DETAIL_DEC_170 169
214 #define PPUTL_DETAIL_DEC_171 170
215 #define PPUTL_DETAIL_DEC_172 171
216 #define PPUTL_DETAIL_DEC_173 172
217 #define PPUTL_DETAIL_DEC_174 173
218 #define PPUTL_DETAIL_DEC_175 174
219 #define PPUTL_DETAIL_DEC_176 175
220 #define PPUTL_DETAIL_DEC_177 176
221 #define PPUTL_DETAIL_DEC_178 177
222 #define PPUTL_DETAIL_DEC_179 178
223 #define PPUTL_DETAIL_DEC_180 179
224 #define PPUTL_DETAIL_DEC_181 180
225 #define PPUTL_DETAIL_DEC_182 181
226 #define PPUTL_DETAIL_DEC_183 182
227 #define PPUTL_DETAIL_DEC_184 183
228 #define PPUTL_DETAIL_DEC_185 184
229 #define PPUTL_DETAIL_DEC_186 185
230 #define PPUTL_DETAIL_DEC_187 186
231 #define PPUTL_DETAIL_DEC_188 187
232 #define PPUTL_DETAIL_DEC_189 188
233 #define PPUTL_DETAIL_DEC_190 189
234 #define PPUTL_DETAIL_DEC_191 190
235 #define PPUTL_DETAIL_DEC_192 191
236 #define PPUTL_DETAIL_DEC_193 192
237 #define PPUTL_DETAIL_DEC_194 193
238 #define PPUTL_DETAIL_DEC_195 194
239 #define PPUTL_DETAIL_DEC_196 195
240 #define PPUTL_DETAIL_DEC_197 196
241 #define PPUTL_DETAIL_DEC_198 197
242 #define PPUTL_DETAIL_DEC_199 198
243 #define PPUTL_DETAIL_DEC_200 199
244 #define PPUTL_DETAIL_DEC_201 200
245 #define PPUTL_DETAIL_DEC_202 201
246 #define PPUTL_DETAIL_DEC_203 202
247 #define PPUTL_DETAIL_DEC_204 203
248 #define PPUTL_DETAIL_DEC_205 204
249 #define PPUTL_DETAIL_DEC_206 205
250 #define PPUTL_DETAIL_DEC_207 206
251 #define PPUTL_DETAIL_DEC_208 207
252 #define PPUTL_DETAIL_DEC_209 208
253 #define PPUTL_DETAIL_DEC_210 209
254 #define PPUTL_DETAIL_DEC_211 210
255 #define PPUTL_DETAIL_DEC_212 211
256 #define PPUTL_DETAIL_DEC_213 212
257 #define PPUTL_DETAIL_DEC_214 213
258 #define PPUTL_DETAIL_DEC_215 214
259 #define PPUTL_DETAIL_DEC_216 215
260 #define PPUTL_DETAIL_DEC_217 216
261 #define PPUTL_DETAIL_DEC_218 217
262 #define PPUTL_DETAIL_DEC_219 218
263 #define PPUTL_DETAIL_DEC_220 219
264 #define PPUTL_DETAIL_DEC_221 220
265 #define PPUTL_DETAIL_DEC_222 221
266 #define PPUTL_DETAIL_DEC_223 222
267 #define PPUTL_DETAIL_DEC_224 223
268 #define PPUTL_DETAIL_DEC_225 224
269 #define PPUTL_DETAIL_DEC_226 225
270 #define PPUTL_DETAIL_DEC_227 226
271 #define PPUTL_DETAIL_DEC_228 227
272 #define PPUTL_DETAIL_DEC_229 228
273 #define PPUTL_DETAIL_DEC_230 229
274 #define PPUTL_DETAIL_DEC_231 230
275 #define PPUTL_DETAIL_DEC_232 231
276 #define PPUTL_DETAIL_DEC_233 232
277 #define PPUTL_DETAIL_DEC_234 233
278 #define PPUTL_DETAIL_DEC_235 234
279 #define PPUTL_DETAIL_DEC_236 235
280 #define PPUTL_DETAIL_DEC_237 236
281 #define PPUTL_DETAIL_DEC_238 237
282 #define PPUTL_DETAIL_DEC_239 238
283 #define PPUTL_DETAIL_DEC_240 239
284 #define PPUTL_DETAIL_DEC_241 240
285 #define PPUTL_DETAIL_DEC_242 241
286 #define PPUTL_DETAIL_DEC_243 242
287 #define PPUTL_DETAIL_DEC_244 243
288 #define PPUTL_DETAIL_DEC_245 244
289 #define PPUTL_DETAIL_DEC_246 245
290 #define PPUTL_DETAIL_DEC_247 246
291 #define PPUTL_DETAIL_DEC_248 247
292 #define PPUTL_DETAIL_DEC_249 248
293 #define PPUTL_DETAIL_DEC_250 249
294 #define PPUTL_DETAIL_DEC_251 250
295 #define PPUTL_DETAIL_DEC_252 251
296 #define PPUTL_DETAIL_DEC_253 252
297 #define PPUTL_DETAIL_DEC_254 253
298 #define PPUTL_DETAIL_DEC_255 254
299 #
300 #endif
PPUTL_CAT
#define PPUTL_CAT(...)
Definition: cat.h:40