vector_u.hd
1 #REM
2 #REM
3 #REM
4 #OUTPUT_PERHAPS(Global_vector_u.ErwinHExt)
5 #DATE
6
7
8
9 #ifdef ERWIN_DEBUG_INCLUDE
10 #warning "Including Global_vector_u.h"
11 #endif
12
13 #ifndef Global_ERWIN_VECTOR_U_ErwinHExt
14 #define Global_ERWIN_VECTOR_U_ErwinHExt
15
16 #ifdef ERWIN_DEBUG_INCLUDE
17 #warning "First inclusion of Global_vector_u.h"
18 #endif
19
20
21
22 #endif
23 #REM
24 #OUTPUT_PERHAPS(Vector_u.ErwinHExt)
25
26 #DATE
27
28
29 #ifdef ERWIN_DEBUG_INCLUDE
30 #warning "First inclusion of Vector_u.ErwinHExt"
31 #endif
32
33 #ifndef ERWIN_Vector_U_ErwinHExt
34 #define ERWIN_Vector_U_ErwinHExt
35
36 #ifdef ERWIN_DEBUG_INCLUDE
37 #warning "First inclusion of Vector_u.ErwinHExt"
38 #endif
39
40 #include "#Global_vector_u.ErwinHExt"
41
42
43
44 #endif
45 #REM
46 #OUTPUT(Vector_d.ErwinHExt)
47
48 #DATE
49
50 #ifdef ERWIN_DEBUG_INCLUDE
51 #warning "Including Vector_d.h"
52 #endif
53
54 #ifndef ERWIN_Vector_D_ErwinHExt
55 #define ERWIN_Vector_D_ErwinHExt
56
57 #ifdef ERWIN_DEBUG_INCLUDE
58 #warning "First inclusion of Vector_d.ErwinHExt"
59 #endif
60
61 #include "#Global_vector_u.ErwinHExt"
62 #include "#Vector_u.ErwinHExt"
63
64 ErwinUserInclude
65
66
67 #IF(oType == void)
68 # define Vector_INDEX_IS_VOID 1
69 #ELSE
70 # define Vector_INDEX_IS_VOID 0
71 #ENDIF
72 #IF(oType == int)
73 # define Vector_INDEX_IS_INT 1
74 #ELSE
75 # define Vector_INDEX_IS_INT 0
76 #ENDIF
77 #IF(isChar == 1)
78 # define Vector_INDEX_IS_CHAR 1
79 #ELSE
80 # define Vector_INDEX_IS_CHAR 0
81 #ENDIF
82
83
84 #if Vector_INDEX_IS_VOID
85 # undef Vector_CONSTANT_ZERO
86 # define Vector_CONSTANT_ZERO 1
87 # undef Vector_DYN_ZERO
88 #elif defined(Vector_CONSTANT_ZERO)
89 # if ERWIN_BOOL_VALUE(Vector_CONSTANT_ZERO)
90 # undef Vector_CONSTANT_ZERO
91 # define Vector_CONSTANT_ZERO 1
92 # else
93 # undef Vector_CONSTANT_ZERO
94 # define Vector_CONSTANT_ZERO 0
95 # endif
96 #elif defined(Vector_DYN_ZERO)
97 # if !ERWIN_BOOL_VALUE(Vector_DYN_ZERO)
98 # define Vector_CONSTANT_ZERO 1
99 # else
100 # define Vector_CONSTANT_ZERO 0
101 # endif
102 #elif defined(Global_oType_HAS_CONSTANT_ZERO)
103 # if ERWIN_BOOL_VALUE(Global_oType_HAS_CONSTANT_ZERO)
104 # define Vector_CONSTANT_ZERO 1
105 # else
106 # define Vector_CONSTANT_ZERO 0
107 # endif
108 #elif defined(Global_VECTOR_CONSTANT_ZERO)
109 # if ERWIN_BOOL_VALUE(Global_VECTOR_CONSTANT_ZERO)
110 # define Vector_CONSTANT_ZERO 1
111 # else
112 # define Vector_CONSTANT_ZERO 0
113 # endif
114 #elif defined(Global_VECTOR_DYN_ZERO)
115 # if !ERWIN_BOOL_VALUE(Global_VECTOR_DYN_ZERO)
116 # define Vector_CONSTANT_ZERO 1
117 # else
118 # define Vector_CONSTANT_ZERO 0
119 # endif
120 #elif defined(Global_ERWIN_CONSTANT_ZERO)
121 # if ERWIN_BOOL_VALUE(Global_ERWIN_CONSTANT_ZERO)
122 # define Vector_CONSTANT_ZERO 1
123 # else
124 # define Vector_CONSTANT_ZERO 0
125 # endif
126 #elif defined(Global_ERWIN_DYN_ZERO)
127 # if !ERWIN_BOOL_VALUE(Global_ERWIN_DYN_ZERO)
128 # define Vector_CONSTANT_ZERO 1
129 # else
130 # define Vector_CONSTANT_ZERO 0
131 # endif
132 #elif defined(ALL_ERWIN_CONSTANT_ZERO)
133 # if ERWIN_BOOL_VALUE(ALL_ERWIN_CONSTANT_ZERO)
134 # define Vector_CONSTANT_ZERO 1
135 # else
136 # define Vector_CONSTANT_ZERO 0
137 # endif
138 #elif !defined(ALL_ERWIN_DYN_ZERO)
139 # define Vector_CONSTANT_ZERO 0
140 #elif !ERWIN_BOOL_VALUE(ALL_ERWIN_DYN_ZERO)
141 # define Vector_CONSTANT_ZERO 1
142 #else
143 # define Vector_CONSTANT_ZERO 0
144 #endif
145 #if !defined(Vector_DYN_ZERO)
146 #elif Vector_CONSTANT_ZERO == ERWIN_BOOL_VALUE(Vector_DYN_ZERO)
147 # error "Inconsistency: Vector_CONSTANT_ZERO == Vector_DYN_ZERO"
148 #endif
149 #if ERWIN_BOOL_VALUE(Vector_CONSTANT_ZERO)
150 # define Vector_DYN_ZERO 0
151 #else
152 # define Vector_DYN_ZERO 1
153 #endif
154
155
156 #if !defined(__cplusplus)
157 # undef Vector_USE_DEFAULT_ARGS
158 # define Vector_USE_DEFAULT_ARGS 0
159 # undef Vector_NO_DEFAULT_ARGS
160 #elif defined(Vector_USE_DEFAULT_ARGS)
161 # if ERWIN_BOOL_VALUE(Vector_USE_DEFAULT_ARGS)
162 # undef Vector_USE_DEFAULT_ARGS
163 # define Vector_USE_DEFAULT_ARGS 1
164 # else
165 # undef Vector_USE_DEFAULT_ARGS
166 # define Vector_USE_DEFAULT_ARGS 0
167 # endif
168 #elif defined(Vector_NO_DEFAULT_ARGS)
169 # if !ERWIN_BOOL_VALUE(Vector_NO_DEFAULT_ARGS)
170 # define Vector_USE_DEFAULT_ARGS 1
171 # else
172 # define Vector_USE_DEFAULT_ARGS 0
173 # endif
174 #elif defined(Global_VECTOR_USE_DEFAULT_ARGS)
175 # if ERWIN_BOOL_VALUE(Global_VECTOR_USE_DEFAULT_ARGS)
176 # define Vector_USE_DEFAULT_ARGS 1
177 # else
178 # define Vector_USE_DEFAULT_ARGS 0
179 # endif
180 #elif defined(Global_VECTOR_NO_DEFAULT_ARGS)
181 # if !ERWIN_BOOL_VALUE(Global_VECTOR_NO_DEFAULT_ARGS)
182 # define Vector_USE_DEFAULT_ARGS 1
183 # else
184 # define Vector_USE_DEFAULT_ARGS 0
185 # endif
186 #elif defined(Global_ERWIN_USE_DEFAULT_ARGS)
187 # if ERWIN_BOOL_VALUE(Global_ERWIN_USE_DEFAULT_ARGS)
188 # define Vector_USE_DEFAULT_ARGS 1
189 # else
190 # define Vector_USE_DEFAULT_ARGS 0
191 # endif
192 #elif defined(Global_ERWIN_NO_DEFAULT_ARGS)
193 # if !ERWIN_BOOL_VALUE(Global_ERWIN_NO_DEFAULT_ARGS)
194 # define Vector_USE_DEFAULT_ARGS 1
195 # else
196 # define Vector_USE_DEFAULT_ARGS 0
197 # endif
198 #elif defined(ALL_ERWIN_USE_DEFAULT_ARGS)
199 # if ERWIN_BOOL_VALUE(ALL_ERWIN_USE_DEFAULT_ARGS)
200 # define Vector_USE_DEFAULT_ARGS 1
201 # else
202 # define Vector_USE_DEFAULT_ARGS 0
203 # endif
204 #elif !defined(ALL_ERWIN_NO_DEFAULT_ARGS)
205 # define Vector_USE_DEFAULT_ARGS 1
206 #elif !ERWIN_BOOL_VALUE(ALL_ERWIN_NO_DEFAULT_ARGS)
207 # define Vector_USE_DEFAULT_ARGS 1
208 #else
209 # define Vector_USE_DEFAULT_ARGS 0
210 #endif
211 #if !defined(Vector_NO_DEFAULT_ARGS)
212 #elif Vector_USE_DEFAULT_ARGS == ERWIN_BOOL_VALUE(Vector_NO_DEFAULT_ARGS)
213 # error "Inconsistency: Vector_USE_DEFAULT_ARGS == Vector_NO_DEFAULT_ARGS"
214 #endif
215 #if ERWIN_BOOL_VALUE(Vector_USE_DEFAULT_ARGS)
216 # define Vector_NO_DEFAULT_ARGS 0
217 #else
218 # define Vector_NO_DEFAULT_ARGS 1
219 #endif
220 #if defined(Vector_USE_DEFAULT_ARGS) && Vector_USE_DEFAULT_ARGS
221 # define Vector_DEFAULT_ARG(X) = X
222 #else
223 # define Vector_DEFAULT_ARG(X)
224 #endif
225
226
227 #if !defined(__cplusplus)
228 #elif defined(Vector_SUPER_CLASS)
229 #elif defined(Global_VECTOR_SUPER_CLASS)
230 # define Vector_SUPER_CLASS Global_VECTOR_SUPER_CLASS
231 #elif defined(Global_ERWIN_SUPER_CLASS)
232 # define Vector_SUPER_CLASS Global_ERWIN_SUPER_CLASS
233 #elif defined(ALL_ERWIN_SUPER_CLASS)
234 # define Vector_SUPER_CLASS ALL_ERWIN_SUPER_CLASS
235 #endif
236
237
238 #if !defined(__cplusplus)
239 #elif defined(Vector_SUPER_CLASS_ACCESS)
240 #elif defined(Global_VECTOR_SUPER_CLASS_ACCESS)
241 # define Vector_SUPER_CLASS_ACCESS Global_VECTOR_SUPER_CLASS_ACCESS
242 #elif defined(Global_ERWIN_SUPER_CLASS_ACCESS)
243 # define Vector_SUPER_CLASS_ACCESS Global_ERWIN_SUPER_CLASS_ACCESS
244 #elif defined(ALL_ERWIN_SUPER_CLASS_ACCESS)
245 # define Vector_SUPER_CLASS_ACCESS ALL_ERWIN_SUPER_CLASS_ACCESS
246 #else
247 # define Vector_SUPER_CLASS_ACCESS private
248 #endif
249
250
251 #if defined(Vector_TYPE_INFO_STD_MEMBERS)
252 #elif defined(Vector_t_TYPE_INFO_STD_MEMBERS)
253 # define Vector_TYPE_INFO_STD_MEMBERS Vector_t_TYPE_INFO_STD_MEMBERS
254 #endif
255 #if defined(Vector_STD_MEMBERS)
256 #elif defined(Global_VECTOR_STD_MEMBERS)
257 # define Vector_STD_MEMBERS(CLASS_NAME) Global_VECTOR_STD_MEMBERS(CLASS_NAME)
258 # define Vector_TYPE_INFO_STD_MEMBERS Global_VECTOR_TYPE_INFO_STD_MEMBERS
259 #elif defined(Global_ERWIN_STD_MEMBERS)
260 # define Vector_STD_MEMBERS(CLASS_NAME) Global_ERWIN_STD_MEMBERS(CLASS_NAME)
261 # define Vector_TYPE_INFO_STD_MEMBERS Global_ERWIN_TYPE_INFO_STD_MEMBERS
262 #elif defined(ALL_ERWIN_STD_MEMBERS)
263 # define Vector_STD_MEMBERS(CLASS_NAME) ALL_ERWIN_STD_MEMBERS(CLASS_NAME)
264 # define Vector_TYPE_INFO_STD_MEMBERS ALL_ERWIN_TYPE_INFO_STD_MEMBERS
265 #else
266 # define Vector_STD_MEMBERS(CLASS_NAME)
267 # define Vector_TYPE_INFO_STD_MEMBERS
268 #endif
269
270
271 #if defined(Vector_HAVE_SIG)
272 # if ERWIN_BOOL_VALUE(Vector_HAVE_SIG)
273 # undef Vector_HAVE_SIG
274 # define Vector_HAVE_SIG 1
275 # else
276 # undef Vector_HAVE_SIG
277 # define Vector_HAVE_SIG 0
278 # endif
279 #elif defined(Vector_NO_SIG)
280 # if !ERWIN_BOOL_VALUE(Vector_NO_SIG)
281 # define Vector_HAVE_SIG 1
282 # else
283 # define Vector_HAVE_SIG 0
284 # endif
285 #elif defined(Vector_FORCE_SIG)
286 # if ERWIN_BOOL_VALUE(Vector_FORCE_SIG)
287 # define Vector_HAVE_SIG 1
288 # else
289 # define Vector_HAVE_SIG 0
290 # endif
291 #elif defined(Global_VECTOR_HAVE_SIG)
292 # if ERWIN_BOOL_VALUE(Global_VECTOR_HAVE_SIG)
293 # define Vector_HAVE_SIG 1
294 # else
295 # define Vector_HAVE_SIG 0
296 # endif
297 #elif defined(Global_VECTOR_NO_SIG)
298 # if !ERWIN_BOOL_VALUE(Global_VECTOR_NO_SIG)
299 # define Vector_HAVE_SIG 1
300 # else
301 # define Vector_HAVE_SIG 0
302 # endif
303 #elif defined(Global_VECTOR_FORCE_SIG)
304 # if ERWIN_BOOL_VALUE(Global_VECTOR_FORCE_SIG)
305 # define Vector_HAVE_SIG 1
306 # else
307 # define Vector_HAVE_SIG 0
308 # endif
309 #elif defined(Global_ERWIN_HAVE_SIG)
310 # if ERWIN_BOOL_VALUE(Global_ERWIN_HAVE_SIG)
311 # define Vector_HAVE_SIG 1
312 # else
313 # define Vector_HAVE_SIG 0
314 # endif
315 #elif defined(Global_ERWIN_NO_SIG)
316 # if !ERWIN_BOOL_VALUE(Global_ERWIN_NO_SIG)
317 # define Vector_HAVE_SIG 1
318 # else
319 # define Vector_HAVE_SIG 0
320 # endif
321 #elif defined(Global_ERWIN_FORCE_SIG)
322 # if ERWIN_BOOL_VALUE(Global_ERWIN_FORCE_SIG)
323 # define Vector_HAVE_SIG 1
324 # else
325 # define Vector_HAVE_SIG 0
326 # endif
327 #elif defined(ALL_ERWIN_HAVE_SIG)
328 # if ERWIN_BOOL_VALUE(ALL_ERWIN_HAVE_SIG)
329 # define Vector_HAVE_SIG 1
330 # else
331 # define Vector_HAVE_SIG 0
332 # endif
333 #elif defined(ALL_ERWIN_NO_SIG)
334 # if !ERWIN_BOOL_VALUE(ALL_ERWIN_NO_SIG)
335 # define Vector_HAVE_SIG 1
336 # else
337 # define Vector_HAVE_SIG 0
338 # endif
339 #elif defined(ALL_ERWIN_FORCE_SIG)
340 # if ERWIN_BOOL_VALUE(ALL_ERWIN_FORCE_SIG)
341 # define Vector_HAVE_SIG 1
342 # else
343 # define Vector_HAVE_SIG 0
344 # endif
345 #elif defined(DEVEL)
346 # define Vector_HAVE_SIG 1
347 #else
348 # define Vector_HAVE_SIG 0
349 #endif
350 #if !defined(Vector_NO_SIG)
351 #elif Vector_HAVE_SIG == ERWIN_BOOL_VALUE(Vector_NO_SIG)
352 # error "Inconsistency: Vector_HAVE_SIG == Vector_NO_SIG"
353 #endif
354 #if !defined(Vector_FORCE_SIG)
355 #elif Vector_HAVE_SIG != ERWIN_BOOL_VALUE(Vector_FORCE_SIG)
356 # error "Inconsistency: Vector_HAVE_SIG != Vector_FORCE_SIG"
357 #endif
358 #if ERWIN_BOOL_VALUE(Vector_HAVE_SIG)
359 # define Vector_NO_SIG 0
360 #else
361 # define Vector_NO_SIG 1
362 #endif
363
364
365 #if defined(Vector_ALLOW_OUTOFRANGE)
366 # if ERWIN_BOOL_VALUE(Vector_ALLOW_OUTOFRANGE)
367 # undef Vector_ALLOW_OUTOFRANGE
368 # define Vector_ALLOW_OUTOFRANGE 1
369 # else
370 # undef Vector_ALLOW_OUTOFRANGE
371 # define Vector_ALLOW_OUTOFRANGE 0
372 # endif
373 #elif defined(Global_VECTOR_ALLOW_OUTOFRANGE)
374 # if ERWIN_BOOL_VALUE(Global_VECTOR_ALLOW_OUTOFRANGE)
375 # define Vector_ALLOW_OUTOFRANGE 1
376 # else
377 # define Vector_ALLOW_OUTOFRANGE 0
378 # endif
379 #elif defined(Global_ERWIN_ALLOW_OUTOFRANGE)
380 # if ERWIN_BOOL_VALUE(Global_ERWIN_ALLOW_OUTOFRANGE)
381 # define Vector_ALLOW_OUTOFRANGE 1
382 # else
383 # define Vector_ALLOW_OUTOFRANGE 0
384 # endif
385 #elif !defined(ALL_ERWIN_ALLOW_OUTOFRANGE)
386 # define Vector_ALLOW_OUTOFRANGE 0
387 #elif ERWIN_BOOL_VALUE(ALL_ERWIN_ALLOW_OUTOFRANGE)
388 # define Vector_ALLOW_OUTOFRANGE 1
389 #else
390 # define Vector_ALLOW_OUTOFRANGE 0
391 #endif
392
393
394 #if defined(Vector_INLINE_STORE)
395 # if ERWIN_BOOL_VALUE(Vector_INLINE_STORE)
396 # undef Vector_INLINE_STORE
397 # define Vector_INLINE_STORE 1
398 # else
399 # undef Vector_INLINE_STORE
400 # define Vector_INLINE_STORE 0
401 # endif
402 #elif defined(Global_VECTOR_INLINE_STORE)
403 # if ERWIN_BOOL_VALUE(Global_VECTOR_INLINE_STORE)
404 # define Vector_INLINE_STORE 1
405 # else
406 # define Vector_INLINE_STORE 0
407 # endif
408 #elif defined(Global_ERWIN_INLINE_STORE)
409 # if ERWIN_BOOL_VALUE(Global_ERWIN_INLINE_STORE)
410 # define Vector_INLINE_STORE 1
411 # else
412 # define Vector_INLINE_STORE 0
413 # endif
414 #elif !defined(ALL_ERWIN_INLINE_STORE)
415 # define Vector_INLINE_STORE 0
416 #elif ERWIN_BOOL_VALUE(ALL_ERWIN_INLINE_STORE)
417 # define Vector_INLINE_STORE 1
418 #else
419 # define Vector_INLINE_STORE 0
420 #endif
421
422
423 #if defined(Vector_RANGE_CHECK)
424 # if ERWIN_BOOL_VALUE(Vector_RANGE_CHECK)
425 # undef Vector_RANGE_CHECK
426 # define Vector_RANGE_CHECK 1
427 # else
428 # undef Vector_RANGE_CHECK
429 # define Vector_RANGE_CHECK 0
430 # endif
431 #elif defined(Vector_NO_RANGE_CHECK)
432 # if !ERWIN_BOOL_VALUE(Vector_NO_RANGE_CHECK)
433 # define Vector_RANGE_CHECK 1
434 # else
435 # define Vector_RANGE_CHECK 0
436 # endif
437 #elif defined(Global_VECTOR_RANGE_CHECK)
438 # if ERWIN_BOOL_VALUE(Global_VECTOR_RANGE_CHECK)
439 # define Vector_RANGE_CHECK 1
440 # else
441 # define Vector_RANGE_CHECK 0
442 # endif
443 #elif defined(Global_VECTOR_NO_RANGE_CHECK)
444 # if !ERWIN_BOOL_VALUE(Global_VECTOR_NO_RANGE_CHECK)
445 # define Vector_RANGE_CHECK 1
446 # else
447 # define Vector_RANGE_CHECK 0
448 # endif
449 #elif defined(Global_ERWIN_RANGE_CHECK)
450 # if ERWIN_BOOL_VALUE(Global_ERWIN_RANGE_CHECK)
451 # define Vector_RANGE_CHECK 1
452 # else
453 # define Vector_RANGE_CHECK 0
454 # endif
455 #elif defined(Global_ERWIN_NO_RANGE_CHECK)
456 # if !ERWIN_BOOL_VALUE(Global_ERWIN_NO_RANGE_CHECK)
457 # define Vector_RANGE_CHECK 1
458 # else
459 # define Vector_RANGE_CHECK 0
460 # endif
461 #elif defined(ALL_ERWIN_RANGE_CHECK)
462 # if ERWIN_BOOL_VALUE(ALL_ERWIN_RANGE_CHECK)
463 # define Vector_RANGE_CHECK 1
464 # else
465 # define Vector_RANGE_CHECK 0
466 # endif
467 #elif !defined(ALL_ERWIN_NO_RANGE_CHECK)
468 # define Vector_RANGE_CHECK 1
469 #elif !ERWIN_BOOL_VALUE(ALL_ERWIN_NO_RANGE_CHECK)
470 # define Vector_RANGE_CHECK 1
471 #else
472 # define Vector_RANGE_CHECK 0
473 #endif
474 #if !defined(Vector_NO_RANGE_CHECK)
475 #elif Vector_RANGE_CHECK == ERWIN_BOOL_VALUE(Vector_NO_RANGE_CHECK)
476 # error "Inconsistency: Vector_RANGE_CHECK == Vector_NO_RANGE_CHECK"
477 #endif
478 #if ERWIN_BOOL_VALUE(Vector_RANGE_CHECK)
479 # define Vector_NO_RANGE_CHECK 0
480 #else
481 # define Vector_NO_RANGE_CHECK 1
482 #endif
483
484
485 #if !defined(__cplusplus)
486 # undef Vector_MANY_CASTS
487 # define Vector_MANY_CASTS 0
488 #elif defined(Vector_MANY_CASTS)
489 # if ERWIN_BOOL_VALUE(Vector_MANY_CASTS)
490 # undef Vector_MANY_CASTS
491 # define Vector_MANY_CASTS 1
492 # else
493 # undef Vector_MANY_CASTS
494 # define Vector_MANY_CASTS 0
495 # endif
496 #elif defined(Global_VECTOR_MANY_CASTS)
497 # if ERWIN_BOOL_VALUE(Global_VECTOR_MANY_CASTS)
498 # define Vector_MANY_CASTS 1
499 # else
500 # define Vector_MANY_CASTS 0
501 # endif
502 #elif defined(Global_ERWIN_MANY_CASTS)
503 # if ERWIN_BOOL_VALUE(Global_ERWIN_MANY_CASTS)
504 # define Vector_MANY_CASTS 1
505 # else
506 # define Vector_MANY_CASTS 0
507 # endif
508 #elif !defined(ALL_ERWIN_MANY_CASTS)
509 # define Vector_MANY_CASTS 0
510 #elif ERWIN_BOOL_VALUE(ALL_ERWIN_MANY_CASTS)
511 # define Vector_MANY_CASTS 1
512 #else
513 # define Vector_MANY_CASTS 0
514 #endif
515 #if defined(Vector_MANY_CASTS) && Vector_MANY_CASTS
516 # define Vector_DEFAULT_ARG_MANY(X) Vector_DEFAULT_ARG(X)
517 #else
518 # define Vector_DEFAULT_ARG_MANY(X)
519 #endif
520
521
522 #if defined(Vector_LOW_MEM)
523 # if ERWIN_BOOL_VALUE(Vector_LOW_MEM)
524 # undef Vector_LOW_MEM
525 # define Vector_LOW_MEM 1
526 # else
527 # undef Vector_LOW_MEM
528 # define Vector_LOW_MEM 0
529 # endif
530 #elif defined(Global_VECTOR_LOW_MEM)
531 # if ERWIN_BOOL_VALUE(Global_VECTOR_LOW_MEM)
532 # define Vector_LOW_MEM 1
533 # else
534 # define Vector_LOW_MEM 0
535 # endif
536 #elif defined(Global_ERWIN_LOW_MEM)
537 # if ERWIN_BOOL_VALUE(Global_ERWIN_LOW_MEM)
538 # define Vector_LOW_MEM 1
539 # else
540 # define Vector_LOW_MEM 0
541 # endif
542 #elif !defined(ALL_ERWIN_LOW_MEM)
543 # define Vector_LOW_MEM 0
544 #elif ERWIN_BOOL_VALUE(ALL_ERWIN_LOW_MEM)
545 # define Vector_LOW_MEM 1
546 #else
547 # define Vector_LOW_MEM 0
548 #endif
549
550
551 #if defined(Vector_SMALL_SIZE)
552 # if ERWIN_BOOL_VALUE(Vector_SMALL_SIZE)
553 # undef Vector_SMALL_SIZE
554 # define Vector_SMALL_SIZE 1
555 # else
556 # undef Vector_SMALL_SIZE
557 # define Vector_SMALL_SIZE 0
558 # endif
559 #elif defined(Global_VECTOR_SMALL_SIZE)
560 # if ERWIN_BOOL_VALUE(Global_VECTOR_SMALL_SIZE)
561 # define Vector_SMALL_SIZE 1
562 # else
563 # define Vector_SMALL_SIZE 0
564 # endif
565 #elif defined(Global_ERWIN_SMALL_SIZE)
566 # if ERWIN_BOOL_VALUE(Global_ERWIN_SMALL_SIZE)
567 # define Vector_SMALL_SIZE 1
568 # else
569 # define Vector_SMALL_SIZE 0
570 # endif
571 #elif !defined(ALL_ERWIN_SMALL_SIZE)
572 # define Vector_SMALL_SIZE 0
573 #elif ERWIN_BOOL_VALUE(ALL_ERWIN_SMALL_SIZE)
574 # define Vector_SMALL_SIZE 1
575 #else
576 # define Vector_SMALL_SIZE 0
577 #endif
578
579
580 #if defined(Vector_MEDIUM_SIZE)
581 # if ERWIN_BOOL_VALUE(Vector_MEDIUM_SIZE)
582 # undef Vector_MEDIUM_SIZE
583 # define Vector_MEDIUM_SIZE 1
584 # else
585 # undef Vector_MEDIUM_SIZE
586 # define Vector_MEDIUM_SIZE 0
587 # endif
588 #elif defined(Global_VECTOR_MEDIUM_SIZE)
589 # if ERWIN_BOOL_VALUE(Global_VECTOR_MEDIUM_SIZE)
590 # define Vector_MEDIUM_SIZE 1
591 # else
592 # define Vector_MEDIUM_SIZE 0
593 # endif
594 #elif defined(Global_ERWIN_MEDIUM_SIZE)
595 # if ERWIN_BOOL_VALUE(Global_ERWIN_MEDIUM_SIZE)
596 # define Vector_MEDIUM_SIZE 1
597 # else
598 # define Vector_MEDIUM_SIZE 0
599 # endif
600 #elif !defined(ALL_ERWIN_MEDIUM_SIZE)
601 # define Vector_MEDIUM_SIZE 0
602 #elif ERWIN_BOOL_VALUE(ALL_ERWIN_MEDIUM_SIZE)
603 # define Vector_MEDIUM_SIZE 1
604 #else
605 # define Vector_MEDIUM_SIZE 0
606 #endif
607
608
609 #if defined(Vector_LARGE_INDEX)
610 # if ERWIN_BOOL_VALUE(Vector_LARGE_INDEX)
611 # undef Vector_LARGE_INDEX
612 # define Vector_LARGE_INDEX 1
613 # else
614 # undef Vector_LARGE_INDEX
615 # define Vector_LARGE_INDEX 0
616 # endif
617 #elif defined(Global_VECTOR_LARGE_INDEX)
618 # if ERWIN_BOOL_VALUE(Global_VECTOR_LARGE_INDEX)
619 # define Vector_LARGE_INDEX 1
620 # else
621 # define Vector_LARGE_INDEX 0
622 # endif
623 #elif defined(Global_ERWIN_LARGE_INDEX)
624 # if ERWIN_BOOL_VALUE(Global_ERWIN_LARGE_INDEX)
625 # define Vector_LARGE_INDEX 1
626 # else
627 # define Vector_LARGE_INDEX 0
628 # endif
629 #elif !defined(ALL_ERWIN_LARGE_INDEX)
630 # define Vector_LARGE_INDEX 0
631 #elif ERWIN_BOOL_VALUE(ALL_ERWIN_LARGE_INDEX)
632 # define Vector_LARGE_INDEX 1
633 #else
634 # define Vector_LARGE_INDEX 0
635 #endif
636
637
638 #if defined(Vector_PREALLOC_SIZE)
639 #elif defined(Global_VECTOR_PREALLOC_SIZE)
640 # define Vector_PREALLOC_SIZE Global_VECTOR_PREALLOC_SIZE
641 #elif defined(Global_ERWIN_PREALLOC_SIZE)
642 # define Vector_PREALLOC_SIZE Global_ERWIN_PREALLOC_SIZE
643 #elif defined(ALL_ERWIN_PREALLOC_SIZE)
644 # define Vector_PREALLOC_SIZE ALL_ERWIN_PREALLOC_SIZE
645 #endif
646
647
648 #if defined(Vector_CHUNK_SIZE)
649 #elif defined(Global_VECTOR_CHUNK_SIZE)
650 # define Vector_CHUNK_SIZE Global_VECTOR_CHUNK_SIZE
651 #elif defined(Global_ERWIN_CHUNK_SIZE)
652 # define Vector_CHUNK_SIZE Global_ERWIN_CHUNK_SIZE
653 #elif defined(ALL_ERWIN_CHUNK_SIZE)
654 # define Vector_CHUNK_SIZE ALL_ERWIN_CHUNK_SIZE
655 #endif
656
657
658 #if defined(Vector_ALLOW_NULL)
659 # if ERWIN_BOOL_VALUE(Vector_ALLOW_NULL)
660 # undef Vector_ALLOW_NULL
661 # define Vector_ALLOW_NULL 1
662 # else
663 # undef Vector_ALLOW_NULL
664 # define Vector_ALLOW_NULL 0
665 # endif
666 #elif defined(Global_VECTOR_ALLOW_NULL)
667 # if ERWIN_BOOL_VALUE(Global_VECTOR_ALLOW_NULL)
668 # define Vector_ALLOW_NULL 1
669 # else
670 # define Vector_ALLOW_NULL 0
671 # endif
672 #elif defined(Global_ERWIN_ALLOW_NULL)
673 # if ERWIN_BOOL_VALUE(Global_ERWIN_ALLOW_NULL)
674 # define Vector_ALLOW_NULL 1
675 # else
676 # define Vector_ALLOW_NULL 0
677 # endif
678 #elif !defined(ALL_ERWIN_ALLOW_NULL)
679 # define Vector_ALLOW_NULL 0
680 #elif ERWIN_BOOL_VALUE(ALL_ERWIN_ALLOW_NULL)
681 # define Vector_ALLOW_NULL 1
682 #else
683 # define Vector_ALLOW_NULL 0
684 #endif
685
686
687 #if !defined(__cplusplus)
688 #elif defined(Vector_DIRECT_RECURSION)
689 # if ERWIN_BOOL_VALUE(Vector_DIRECT_RECURSION)
690 # undef Vector_DIRECT_RECURSION
691 # define Vector_DIRECT_RECURSION 1
692 # else
693 # undef Vector_DIRECT_RECURSION
694 # define Vector_DIRECT_RECURSION 0
695 # endif
696 #elif defined(Global_VECTOR_DIRECT_RECURSION)
697 # if ERWIN_BOOL_VALUE(Global_VECTOR_DIRECT_RECURSION)
698 # define Vector_DIRECT_RECURSION 1
699 # else
700 # define Vector_DIRECT_RECURSION 0
701 # endif
702 #elif defined(Global_ERWIN_DIRECT_RECURSION)
703 # if ERWIN_BOOL_VALUE(Global_ERWIN_DIRECT_RECURSION)
704 # define Vector_DIRECT_RECURSION 1
705 # else
706 # define Vector_DIRECT_RECURSION 0
707 # endif
708 #elif !defined(ALL_ERWIN_DIRECT_RECURSION)
709 # define Vector_DIRECT_RECURSION 0
710 #elif ERWIN_BOOL_VALUE(ALL_ERWIN_DIRECT_RECURSION)
711 # define Vector_DIRECT_RECURSION 1
712 #else
713 # define Vector_DIRECT_RECURSION 0
714 #endif
715
716
717 #if defined(__cplusplus)
718 # if Vector_DYN_ZERO && Vector_INDEX_IS_INT
719 # undef Vector_HAVE_INT_CONSTRUCTOR
720 # define Vector_HAVE_INT_CONSTRUCTOR 0
721 # undef Vector_NO_INT_CONSTRUCTOR
722 # elif defined(Vector_HAVE_INT_CONSTRUCTOR)
723 # if ERWIN_BOOL_VALUE(Vector_HAVE_INT_CONSTRUCTOR)
724 # undef Vector_HAVE_INT_CONSTRUCTOR
725 # define Vector_HAVE_INT_CONSTRUCTOR 1
726 # else
727 # undef Vector_HAVE_INT_CONSTRUCTOR
728 # define Vector_HAVE_INT_CONSTRUCTOR 0
729 # endif
730 # elif defined(Vector_NO_INT_CONSTRUCTOR)
731 # if !ERWIN_BOOL_VALUE(Vector_NO_INT_CONSTRUCTOR)
732 # define Vector_HAVE_INT_CONSTRUCTOR 1
733 # else
734 # define Vector_HAVE_INT_CONSTRUCTOR 0
735 # endif
736 # elif defined(Global_VECTOR_HAVE_INT_CONSTRUCTOR)
737 # if ERWIN_BOOL_VALUE(Global_VECTOR_HAVE_INT_CONSTRUCTOR)
738 # define Vector_HAVE_INT_CONSTRUCTOR 1
739 # else
740 # define Vector_HAVE_INT_CONSTRUCTOR 0
741 # endif
742 # elif defined(Global_VECTOR_NO_INT_CONSTRUCTOR)
743 # if !ERWIN_BOOL_VALUE(Global_VECTOR_NO_INT_CONSTRUCTOR)
744 # define Vector_HAVE_INT_CONSTRUCTOR 1
745 # else
746 # define Vector_HAVE_INT_CONSTRUCTOR 0
747 # endif
748 # elif defined(Global_ERWIN_HAVE_INT_CONSTRUCTOR)
749 # if ERWIN_BOOL_VALUE(Global_ERWIN_HAVE_INT_CONSTRUCTOR)
750 # define Vector_HAVE_INT_CONSTRUCTOR 1
751 # else
752 # define Vector_HAVE_INT_CONSTRUCTOR 0
753 # endif
754 # elif defined(Global_ERWIN_NO_INT_CONSTRUCTOR)
755 # if !ERWIN_BOOL_VALUE(Global_ERWIN_NO_INT_CONSTRUCTOR)
756 # define Vector_HAVE_INT_CONSTRUCTOR 1
757 # else
758 # define Vector_HAVE_INT_CONSTRUCTOR 0
759 # endif
760 # elif defined(ALL_ERWIN_HAVE_INT_CONSTRUCTOR)
761 # if ERWIN_BOOL_VALUE(ALL_ERWIN_HAVE_INT_CONSTRUCTOR)
762 # define Vector_HAVE_INT_CONSTRUCTOR 1
763 # else
764 # define Vector_HAVE_INT_CONSTRUCTOR 0
765 # endif
766 # elif !defined(ALL_ERWIN_NO_INT_CONSTRUCTOR)
767 # define Vector_HAVE_INT_CONSTRUCTOR 1
768 # elif !ERWIN_BOOL_VALUE(ALL_ERWIN_NO_INT_CONSTRUCTOR)
769 # define Vector_HAVE_INT_CONSTRUCTOR 1
770 # else
771 # define Vector_HAVE_INT_CONSTRUCTOR 0
772 # endif
773 # if !defined(Vector_NO_INT_CONSTRUCTOR)
774 # elif Vector_HAVE_INT_CONSTRUCTOR == ERWIN_BOOL_VALUE(Vector_NO_INT_CONSTRUCTOR)
775 # error "Inconsistency: Vector_HAVE_INT_CONSTRUCTOR == Vector_NO_INT_CONSTRUCTOR"
776 # endif
777 # if ERWIN_BOOL_VALUE(Vector_HAVE_INT_CONSTRUCTOR)
778 # define Vector_NO_INT_CONSTRUCTOR 0
779 # else
780 # define Vector_NO_INT_CONSTRUCTOR 1
781 # endif
782 #endif
783
784
785 #if Vector_INDEX_IS_CHAR
786 # if defined(Vector_IMPLEMENT_FORMAT)
787 # if ERWIN_BOOL_VALUE(Vector_IMPLEMENT_FORMAT)
788 # undef Vector_IMPLEMENT_FORMAT
789 # define Vector_IMPLEMENT_FORMAT 1
790 # else
791 # undef Vector_IMPLEMENT_FORMAT
792 # define Vector_IMPLEMENT_FORMAT 0
793 # endif
794 # elif defined(Vector_NO_FORMAT)
795 # if !ERWIN_BOOL_VALUE(Vector_NO_FORMAT)
796 # define Vector_IMPLEMENT_FORMAT 1
797 # else
798 # define Vector_IMPLEMENT_FORMAT 0
799 # endif
800 # elif defined(Global_VECTOR_IMPLEMENT_FORMAT)
801 # if ERWIN_BOOL_VALUE(Global_VECTOR_IMPLEMENT_FORMAT)
802 # define Vector_IMPLEMENT_FORMAT 1
803 # else
804 # define Vector_IMPLEMENT_FORMAT 0
805 # endif
806 # elif defined(Global_VECTOR_NO_FORMAT)
807 # if !ERWIN_BOOL_VALUE(Global_VECTOR_NO_FORMAT)
808 # define Vector_IMPLEMENT_FORMAT 1
809 # else
810 # define Vector_IMPLEMENT_FORMAT 0
811 # endif
812 # elif defined(Global_ERWIN_IMPLEMENT_FORMAT)
813 # if ERWIN_BOOL_VALUE(Global_ERWIN_IMPLEMENT_FORMAT)
814 # define Vector_IMPLEMENT_FORMAT 1
815 # else
816 # define Vector_IMPLEMENT_FORMAT 0
817 # endif
818 # elif defined(Global_ERWIN_NO_FORMAT)
819 # if !ERWIN_BOOL_VALUE(Global_ERWIN_NO_FORMAT)
820 # define Vector_IMPLEMENT_FORMAT 1
821 # else
822 # define Vector_IMPLEMENT_FORMAT 0
823 # endif
824 # elif defined(ALL_ERWIN_IMPLEMENT_FORMAT)
825 # if ERWIN_BOOL_VALUE(ALL_ERWIN_IMPLEMENT_FORMAT)
826 # define Vector_IMPLEMENT_FORMAT 1
827 # else
828 # define Vector_IMPLEMENT_FORMAT 0
829 # endif
830 # elif !defined(ALL_ERWIN_NO_FORMAT)
831 # define Vector_IMPLEMENT_FORMAT 1
832 # elif !ERWIN_BOOL_VALUE(ALL_ERWIN_NO_FORMAT)
833 # define Vector_IMPLEMENT_FORMAT 1
834 # else
835 # define Vector_IMPLEMENT_FORMAT 0
836 # endif
837 # if !defined(Vector_NO_FORMAT)
838 # elif Vector_IMPLEMENT_FORMAT == ERWIN_BOOL_VALUE(Vector_NO_FORMAT)
839 # error "Inconsistency: Vector_IMPLEMENT_FORMAT == Vector_NO_FORMAT"
840 # endif
841 # if ERWIN_BOOL_VALUE(Vector_IMPLEMENT_FORMAT)
842 # define Vector_NO_FORMAT 0
843 # else
844 # define Vector_NO_FORMAT 1
845 # endif
846 #endif
847
848
849 #if defined(Vector_POSITION_POINTER)
850 # if ERWIN_BOOL_VALUE(Vector_POSITION_POINTER)
851 # undef Vector_POSITION_POINTER
852 # define Vector_POSITION_POINTER 1
853 # else
854 # undef Vector_POSITION_POINTER
855 # define Vector_POSITION_POINTER 0
856 # endif
857 #elif defined(Global_VECTOR_POSITION_POINTER)
858 # if ERWIN_BOOL_VALUE(Global_VECTOR_POSITION_POINTER)
859 # define Vector_POSITION_POINTER 1
860 # else
861 # define Vector_POSITION_POINTER 0
862 # endif
863 #elif defined(Global_ERWIN_POSITION_POINTER)
864 # if ERWIN_BOOL_VALUE(Global_ERWIN_POSITION_POINTER)
865 # define Vector_POSITION_POINTER 1
866 # else
867 # define Vector_POSITION_POINTER 0
868 # endif
869 #elif !defined(ALL_ERWIN_POSITION_POINTER)
870 # define Vector_POSITION_POINTER 0
871 #elif ERWIN_BOOL_VALUE(ALL_ERWIN_POSITION_POINTER)
872 # define Vector_POSITION_POINTER 1
873 #else
874 # define Vector_POSITION_POINTER 0
875 #endif
876
877
878 #ifdef Vector_IMPLEMENTATION
879
880 ErwinImplementationInclude
881
882 #ifdef Global_ERWIN_COMPILING
883 # include "erwin/defaults.h"
884 # include "erwin/forwards.h"
885 #else
886 # include <erwin/defaults.h>
887 # include <erwin/forwards.h>
888 #endif
889
890
891 #if defined(Vector_NOMEM_IS_FATAL)
892 # if ERWIN_BOOL_VALUE(Vector_NOMEM_IS_FATAL)
893 # undef Vector_NOMEM_IS_FATAL
894 # define Vector_NOMEM_IS_FATAL 1
895 # else
896 # undef Vector_NOMEM_IS_FATAL
897 # define Vector_NOMEM_IS_FATAL 0
898 # endif
899 #elif defined(Global_VECTOR_NOMEM_IS_FATAL)
900 # if ERWIN_BOOL_VALUE(Global_VECTOR_NOMEM_IS_FATAL)
901 # define Vector_NOMEM_IS_FATAL 1
902 # else
903 # define Vector_NOMEM_IS_FATAL 0
904 # endif
905 #elif defined(Global_ERWIN_NOMEM_IS_FATAL)
906 # if ERWIN_BOOL_VALUE(Global_ERWIN_NOMEM_IS_FATAL)
907 # define Vector_NOMEM_IS_FATAL 1
908 # else
909 # define Vector_NOMEM_IS_FATAL 0
910 # endif
911 #elif !defined(ALL_ERWIN_NOMEM_IS_FATAL)
912 # define Vector_NOMEM_IS_FATAL 0
913 #elif ERWIN_BOOL_VALUE(ALL_ERWIN_NOMEM_IS_FATAL)
914 # define Vector_NOMEM_IS_FATAL 1
915 #else
916 # define Vector_NOMEM_IS_FATAL 0
917 #endif
918
919
920 #if defined(Vector_ASSERTION_FAILED_HANDLER)
921 #elif defined(Global_VECTOR_ASSERTION_FAILED_HANDLER)
922 # define Vector_ASSERTION_FAILED_HANDLER(FILE,LINE,FUNC,CHECK) Global_VECTOR_ASSERTION_FAILED_HANDLER(FILE,LINE,FUNC,CHECK)
923 #elif defined(Global_ERWIN_ASSERTION_FAILED_HANDLER)
924 # define Vector_ASSERTION_FAILED_HANDLER(FILE,LINE,FUNC,CHECK) Global_ERWIN_ASSERTION_FAILED_HANDLER(FILE,LINE,FUNC,CHECK)
925 #elif defined(ALL_ERWIN_ASSERTION_FAILED_HANDLER)
926 # define Vector_ASSERTION_FAILED_HANDLER(FILE,LINE,FUNC,CHECK) ALL_ERWIN_ASSERTION_FAILED_HANDLER(FILE,LINE,FUNC,CHECK)
927 #else
928 # define Vector_ASSERTION_FAILED_HANDLER(FILE,LINE,FUNC,CHECK) Global_ERWIN_DEFAULT_ASSERTION_FAILED_HANDLER(FILE,LINE,FUNC,CHECK)
929 #endif
930
931
932 #if defined(Vector_OPTIMISE_SIZE)
933 # if ERWIN_BOOL_VALUE(Vector_OPTIMISE_SIZE)
934 # undef Vector_OPTIMISE_SIZE
935 # define Vector_OPTIMISE_SIZE 1
936 # else
937 # undef Vector_OPTIMISE_SIZE
938 # define Vector_OPTIMISE_SIZE 0
939 # endif
940 #elif defined(Global_VECTOR_OPTIMISE_SIZE)
941 # if ERWIN_BOOL_VALUE(Global_VECTOR_OPTIMISE_SIZE)
942 # define Vector_OPTIMISE_SIZE 1
943 # else
944 # define Vector_OPTIMISE_SIZE 0
945 # endif
946 #elif defined(Global_ERWIN_OPTIMISE_SIZE)
947 # if ERWIN_BOOL_VALUE(Global_ERWIN_OPTIMISE_SIZE)
948 # define Vector_OPTIMISE_SIZE 1
949 # else
950 # define Vector_OPTIMISE_SIZE 0
951 # endif
952 #elif !defined(ALL_ERWIN_OPTIMISE_SIZE)
953 #elif ERWIN_BOOL_VALUE(ALL_ERWIN_OPTIMISE_SIZE)
954 # define Vector_OPTIMISE_SIZE 1
955 #else
956 # define Vector_OPTIMISE_SIZE 0
957 #endif
958
959
960 #if defined(Vector_SPLIT)
961 # if ERWIN_BOOL_VALUE(Vector_SPLIT)
962 # undef Vector_SPLIT
963 # define Vector_SPLIT 1
964 # else
965 # undef Vector_SPLIT
966 # define Vector_SPLIT 0
967 # endif
968 #elif defined(Global_VECTOR_SPLIT)
969 # if ERWIN_BOOL_VALUE(Global_VECTOR_SPLIT)
970 # define Vector_SPLIT 1
971 # else
972 # define Vector_SPLIT 0
973 # endif
974 #elif defined(Global_ERWIN_SPLIT)
975 # if ERWIN_BOOL_VALUE(Global_ERWIN_SPLIT)
976 # define Vector_SPLIT 1
977 # else
978 # define Vector_SPLIT 0
979 # endif
980 #elif !defined(ALL_ERWIN_SPLIT)
981 #elif ERWIN_BOOL_VALUE(ALL_ERWIN_SPLIT)
982 # define Vector_SPLIT 1
983 #else
984 # define Vector_SPLIT 0
985 #endif
986
987
988 #if defined(Vector_AUTO_SHRINK)
989 # if ERWIN_BOOL_VALUE(Vector_AUTO_SHRINK)
990 # undef Vector_AUTO_SHRINK
991 # define Vector_AUTO_SHRINK 1
992 # else
993 # undef Vector_AUTO_SHRINK
994 # define Vector_AUTO_SHRINK 0
995 # endif
996 #elif defined(Vector_NO_AUTO_SHRINK)
997 # if !ERWIN_BOOL_VALUE(Vector_NO_AUTO_SHRINK)
998 # define Vector_AUTO_SHRINK 1
999 # else
1000 # define Vector_AUTO_SHRINK 0
1001 # endif
1002 #elif defined(Global_VECTOR_AUTO_SHRINK)
1003 # if ERWIN_BOOL_VALUE(Global_VECTOR_AUTO_SHRINK)
1004 # define Vector_AUTO_SHRINK 1
1005 # else
1006 # define Vector_AUTO_SHRINK 0
1007 # endif
1008 #elif defined(Global_VECTOR_NO_AUTO_SHRINK)
1009 # if !ERWIN_BOOL_VALUE(Global_VECTOR_NO_AUTO_SHRINK)
1010 # define Vector_AUTO_SHRINK 1
1011 # else
1012 # define Vector_AUTO_SHRINK 0
1013 # endif
1014 #elif defined(Global_ERWIN_AUTO_SHRINK)
1015 # if ERWIN_BOOL_VALUE(Global_ERWIN_AUTO_SHRINK)
1016 # define Vector_AUTO_SHRINK 1
1017 # else
1018 # define Vector_AUTO_SHRINK 0
1019 # endif
1020 #elif defined(Global_ERWIN_NO_AUTO_SHRINK)
1021 # if !ERWIN_BOOL_VALUE(Global_ERWIN_NO_AUTO_SHRINK)
1022 # define Vector_AUTO_SHRINK 1
1023 # else
1024 # define Vector_AUTO_SHRINK 0
1025 # endif
1026 #elif defined(ALL_ERWIN_AUTO_SHRINK)
1027 # if ERWIN_BOOL_VALUE(ALL_ERWIN_AUTO_SHRINK)
1028 # define Vector_AUTO_SHRINK 1
1029 # else
1030 # define Vector_AUTO_SHRINK 0
1031 # endif
1032 #elif !defined(ALL_ERWIN_NO_AUTO_SHRINK)
1033 # define Vector_AUTO_SHRINK 1
1034 #elif !ERWIN_BOOL_VALUE(ALL_ERWIN_NO_AUTO_SHRINK)
1035 # define Vector_AUTO_SHRINK 1
1036 #else
1037 # define Vector_AUTO_SHRINK 0
1038 #endif
1039 #if !defined(Vector_NO_AUTO_SHRINK)
1040 #elif Vector_AUTO_SHRINK == ERWIN_BOOL_VALUE(Vector_NO_AUTO_SHRINK)
1041 # error "Inconsistency: Vector_AUTO_SHRINK == Vector_NO_AUTO_SHRINK"
1042 #endif
1043 #if ERWIN_BOOL_VALUE(Vector_AUTO_SHRINK)
1044 # define Vector_NO_AUTO_SHRINK 0
1045 #else
1046 # define Vector_NO_AUTO_SHRINK 1
1047 #endif
1048
1049
1050 #if !defined(__cplusplus)
1051 # undef Vector_C_MM
1052 # define Vector_C_MM 1
1053 #elif defined(Vector_C_MM)
1054 # if ERWIN_BOOL_VALUE(Vector_C_MM)
1055 # undef Vector_C_MM
1056 # define Vector_C_MM 1
1057 # else
1058 # undef Vector_C_MM
1059 # define Vector_C_MM 0
1060 # endif
1061 #elif defined(Global_VECTOR_C_MM)
1062 # if ERWIN_BOOL_VALUE(Global_VECTOR_C_MM)
1063 # define Vector_C_MM 1
1064 # else
1065 # define Vector_C_MM 0
1066 # endif
1067 #elif defined(Global_ERWIN_C_MM)
1068 # if ERWIN_BOOL_VALUE(Global_ERWIN_C_MM)
1069 # define Vector_C_MM 1
1070 # else
1071 # define Vector_C_MM 0
1072 # endif
1073 #elif !defined(ALL_ERWIN_C_MM)
1074 # define Vector_C_MM 0
1075 #elif ERWIN_BOOL_VALUE(ALL_ERWIN_C_MM)
1076 # define Vector_C_MM 1
1077 #else
1078 # define Vector_C_MM 0
1079 #endif
1080
1081
1082 #if defined(Vector_COMPARE_LEXICOGRAPHICALLY)
1083 # if ERWIN_BOOL_VALUE(Vector_COMPARE_LEXICOGRAPHICALLY)
1084 # undef Vector_COMPARE_LEXICOGRAPHICALLY
1085 # define Vector_COMPARE_LEXICOGRAPHICALLY 1
1086 # else
1087 # undef Vector_COMPARE_LEXICOGRAPHICALLY
1088 # define Vector_COMPARE_LEXICOGRAPHICALLY 0
1089 # endif
1090 #elif defined(Global_VECTOR_COMPARE_LEXICOGRAPHICALLY)
1091 # if ERWIN_BOOL_VALUE(Global_VECTOR_COMPARE_LEXICOGRAPHICALLY)
1092 # define Vector_COMPARE_LEXICOGRAPHICALLY 1
1093 # else
1094 # define Vector_COMPARE_LEXICOGRAPHICALLY 0
1095 # endif
1096 #elif defined(Global_ERWIN_COMPARE_LEXICOGRAPHICALLY)
1097 # if ERWIN_BOOL_VALUE(Global_ERWIN_COMPARE_LEXICOGRAPHICALLY)
1098 # define Vector_COMPARE_LEXICOGRAPHICALLY 1
1099 # else
1100 # define Vector_COMPARE_LEXICOGRAPHICALLY 0
1101 # endif
1102 #elif defined(ALL_ERWIN_COMPARE_LEXICOGRAPHICALLY)
1103 # if ERWIN_BOOL_VALUE(ALL_ERWIN_COMPARE_LEXICOGRAPHICALLY)
1104 # define Vector_COMPARE_LEXICOGRAPHICALLY 1
1105 # else
1106 # define Vector_COMPARE_LEXICOGRAPHICALLY 0
1107 # endif
1108 #elif Vector_INDEX_IS_CHAR
1109 # define Vector_COMPARE_LEXICOGRAPHICALLY 1
1110 #else
1111 # define Vector_COMPARE_LEXICOGRAPHICALLY 0
1112 #endif
1113
1114
1115 #if defined(Vector_PRIORITY_COMPARE_LEXICOGRAPHICALLY)
1116 # if ERWIN_BOOL_VALUE(Vector_PRIORITY_COMPARE_LEXICOGRAPHICALLY)
1117 # undef Vector_PRIORITY_COMPARE_LEXICOGRAPHICALLY
1118 # define Vector_PRIORITY_COMPARE_LEXICOGRAPHICALLY 1
1119 # else
1120 # undef Vector_PRIORITY_COMPARE_LEXICOGRAPHICALLY
1121 # define Vector_PRIORITY_COMPARE_LEXICOGRAPHICALLY 0
1122 # endif
1123 #elif defined(Global_VECTOR_PRIORITY_COMPARE_LEXICOGRAPHICALLY)
1124 # if ERWIN_BOOL_VALUE(Global_VECTOR_PRIORITY_COMPARE_LEXICOGRAPHICALLY)
1125 # define Vector_PRIORITY_COMPARE_LEXICOGRAPHICALLY 1
1126 # else
1127 # define Vector_PRIORITY_COMPARE_LEXICOGRAPHICALLY 0
1128 # endif
1129 #elif defined(Global_ERWIN_PRIORITY_COMPARE_LEXICOGRAPHICALLY)
1130 # if ERWIN_BOOL_VALUE(Global_ERWIN_PRIORITY_COMPARE_LEXICOGRAPHICALLY)
1131 # define Vector_PRIORITY_COMPARE_LEXICOGRAPHICALLY 1
1132 # else
1133 # define Vector_PRIORITY_COMPARE_LEXICOGRAPHICALLY 0
1134 # endif
1135 #elif !defined(ALL_ERWIN_PRIORITY_COMPARE_LEXICOGRAPHICALLY)
1136 # define Vector_PRIORITY_COMPARE_LEXICOGRAPHICALLY 0
1137 #elif ERWIN_BOOL_VALUE(ALL_ERWIN_PRIORITY_COMPARE_LEXICOGRAPHICALLY)
1138 # define Vector_PRIORITY_COMPARE_LEXICOGRAPHICALLY 1
1139 #else
1140 # define Vector_PRIORITY_COMPARE_LEXICOGRAPHICALLY 0
1141 #endif
1142
1143
1144 #if defined(NDEBUG)
1145 # undef Vector_DEBUG_EXPENSIVE_CHECKS
1146 # define Vector_DEBUG_EXPENSIVE_CHECKS 0
1147 #elif defined(Vector_DEBUG_EXPENSIVE_CHECKS)
1148 # if ERWIN_BOOL_VALUE(Vector_DEBUG_EXPENSIVE_CHECKS)
1149 # undef Vector_DEBUG_EXPENSIVE_CHECKS
1150 # define Vector_DEBUG_EXPENSIVE_CHECKS 1
1151 # else
1152 # undef Vector_DEBUG_EXPENSIVE_CHECKS
1153 # define Vector_DEBUG_EXPENSIVE_CHECKS 0
1154 # endif
1155 #elif defined(Global_VECTOR_DEBUG_EXPENSIVE_CHECKS)
1156 # if ERWIN_BOOL_VALUE(Global_VECTOR_DEBUG_EXPENSIVE_CHECKS)
1157 # define Vector_DEBUG_EXPENSIVE_CHECKS 1
1158 # else
1159 # define Vector_DEBUG_EXPENSIVE_CHECKS 0
1160 # endif
1161 #elif defined(Global_ERWIN_DEBUG_EXPENSIVE_CHECKS)
1162 # if ERWIN_BOOL_VALUE(Global_ERWIN_DEBUG_EXPENSIVE_CHECKS)
1163 # define Vector_DEBUG_EXPENSIVE_CHECKS 1
1164 # else
1165 # define Vector_DEBUG_EXPENSIVE_CHECKS 0
1166 # endif
1167 #elif !defined(ALL_ERWIN_DEBUG_EXPENSIVE_CHECKS)
1168 # define Vector_DEBUG_EXPENSIVE_CHECKS 0
1169 #elif ERWIN_BOOL_VALUE(ALL_ERWIN_DEBUG_EXPENSIVE_CHECKS)
1170 # define Vector_DEBUG_EXPENSIVE_CHECKS 1
1171 #else
1172 # define Vector_DEBUG_EXPENSIVE_CHECKS 0
1173 #endif
1174
1175
1176 #if defined(Vector_INITIAL_SIZE)
1177 #elif defined(Global_VECTOR_INITIAL_SIZE)
1178 # define Vector_INITIAL_SIZE Global_VECTOR_INITIAL_SIZE
1179 #elif defined(Global_ERWIN_INITIAL_SIZE)
1180 # define Vector_INITIAL_SIZE Global_ERWIN_INITIAL_SIZE
1181 #elif defined(ALL_ERWIN_INITIAL_SIZE)
1182 # define Vector_INITIAL_SIZE ALL_ERWIN_INITIAL_SIZE
1183 #else
1184 # define Vector_INITIAL_SIZE 8
1185 #endif
1186
1187
1188 #if defined(Vector_MINIMAL_SIZE)
1189 #elif defined(Global_VECTOR_MINIMAL_SIZE)
1190 # define Vector_MINIMAL_SIZE Global_VECTOR_MINIMAL_SIZE
1191 #elif defined(Global_ERWIN_MINIMAL_SIZE)
1192 # define Vector_MINIMAL_SIZE Global_ERWIN_MINIMAL_SIZE
1193 #elif defined(ALL_ERWIN_MINIMAL_SIZE)
1194 # define Vector_MINIMAL_SIZE ALL_ERWIN_MINIMAL_SIZE
1195 #else
1196 # define Vector_MINIMAL_SIZE 8
1197 #endif
1198
1199
1200 #if defined(Vector_OUTOFRANGE_IS_FATAL)
1201 # if ERWIN_BOOL_VALUE(Vector_OUTOFRANGE_IS_FATAL)
1202 # undef Vector_OUTOFRANGE_IS_FATAL
1203 # define Vector_OUTOFRANGE_IS_FATAL 1
1204 # else
1205 # undef Vector_OUTOFRANGE_IS_FATAL
1206 # define Vector_OUTOFRANGE_IS_FATAL 0
1207 # endif
1208 #elif defined(Global_VECTOR_OUTOFRANGE_IS_FATAL)
1209 # if ERWIN_BOOL_VALUE(Global_VECTOR_OUTOFRANGE_IS_FATAL)
1210 # define Vector_OUTOFRANGE_IS_FATAL 1
1211 # else
1212 # define Vector_OUTOFRANGE_IS_FATAL 0
1213 # endif
1214 #elif defined(Global_ERWIN_OUTOFRANGE_IS_FATAL)
1215 # if ERWIN_BOOL_VALUE(Global_ERWIN_OUTOFRANGE_IS_FATAL)
1216 # define Vector_OUTOFRANGE_IS_FATAL 1
1217 # else
1218 # define Vector_OUTOFRANGE_IS_FATAL 0
1219 # endif
1220 #elif !defined(ALL_ERWIN_OUTOFRANGE_IS_FATAL)
1221 # define Vector_OUTOFRANGE_IS_FATAL 0
1222 #elif ERWIN_BOOL_VALUE(ALL_ERWIN_OUTOFRANGE_IS_FATAL)
1223 # define Vector_OUTOFRANGE_IS_FATAL 1
1224 #else
1225 # define Vector_OUTOFRANGE_IS_FATAL 0
1226 #endif
1227
1228
1229 #if defined(Global_oType_OCOPY_PROVIDED)
1230 #elif defined(Global_oType_OCOPY)
1231 # define Global_oType_OCOPY_PROVIDED 1
1232 #elif defined(Global_oType_COPY)
1233 # define Global_oType_OCOPY_PROVIDED 1
1234 # define Global_oType_OCOPY(TO_BE_COPIED,ERR_P) Global_oType_COPY(TO_BE_COPIED,ERR_P)
1235 #else
1236 # define Global_oType_OCOPY(TO_BE_COPIED,ERR_P) TO_BE_COPIED
1237 # define Global_oType_OCOPY_PROVIDED 0
1238 #endif
1239 #if defined(Global_oType_OCOPY)
1240 #elif Global_oType_OCOPY_PROVIDED
1241 # error "Inconsistency: Global_oType_OCOPY_PROVIDED is true but Global_oType_OCOPY is undefined."
1242 #endif
1243
1244
1245 #if defined(Global_oType_OFREE_PROVIDED)
1246 #elif defined(Global_oType_OFREE)
1247 # define Global_oType_OFREE_PROVIDED 1
1248 #elif defined(Global_oType_FREE)
1249 # define Global_oType_OFREE_PROVIDED 1
1250 # define Global_oType_OFREE(TO_BE_DESTROYED) Global_oType_FREE(TO_BE_DESTROYED)
1251 #else
1252 # define Global_oType_OFREE(TO_BE_DESTROYED)
1253 # define Global_oType_OFREE_PROVIDED 0
1254 #endif
1255 #if defined(Global_oType_OFREE)
1256 #elif Global_oType_OFREE_PROVIDED
1257 # error "Inconsistency: Global_oType_OFREE_PROVIDED is true but Global_oType_OFREE is undefined."
1258 #endif
1259
1260
1261 #if !defined(Global_oType_ZERO)
1262 # define Global_oType_ZERO (oTypeTouched)0
1263 #endif
1264
1265
1266 #if defined(Global_oType_HASH_RAW)
1267 #elif defined(Global_oType_HASHVAL)
1268 # define Global_oType_HASH_RAW(X) Global_oType_HASHVAL(X)
1269 #endif
1270
1271
1272 #if defined(Global_oType_HASH)
1273 #elif defined(Global_oType_HASH_RAW)
1274 # define Global_oType_HASH(X) Global_hashval_t_hash((Global_oType_HASH_RAW(X)))
1275 #endif
1276
1277
1278 #if defined(Global_oType_CMP_PROVIDED)
1279 #elif defined(Global_oType_CMP)
1280 # define Global_oType_CMP_PROVIDED 1
1281 #else
1282 # define Global_oType_CMP_PROVIDED 0
1283 #endif
1284 #if defined(Global_oType_CMP)
1285 #elif Global_oType_CMP_PROVIDED
1286 # error "Inconsistency: Global_oType_CMP_PROVIDED is true but Global_oType_CMP is undefined."
1287 #endif
1288
1289
1290 #if defined(Global_oType_PRIORITY_CMP_PROVIDED)
1291 #elif defined(Global_oType_PRIORITY_CMP)
1292 # define Global_oType_PRIORITY_CMP_PROVIDED 1
1293 #else
1294 # if defined(Global_oType_CMP)
1295 # define Global_oType_PRIORITY_CMP(A,B) Global_oType_CMP(A,B)
1296 # endif
1297 # define Global_oType_PRIORITY_CMP_PROVIDED 0
1298 #endif
1299 #if defined(Global_oType_PRIORITY_CMP)
1300 #elif Global_oType_PRIORITY_CMP_PROVIDED
1301 # error "Inconsistency: Global_oType_PRIORITY_CMP_PROVIDED is true but Global_oType_PRIORITY_CMP is undefined."
1302 #endif
1303
1304
1305 #if defined(Global_oType_EQUAL)
1306 #elif !Global_oType_CMP_PROVIDED
1307 # define Global_oType_EQUAL(A,B) (A) == (B)
1308 #elif defined(Global_oType_CMP)
1309 # define Global_oType_EQUAL(A,B) (Global_oType_CMP(A,B)) == 0
1310 #endif
1311
1312
1313 #if defined(Vector_UPDATE_POS)
1314 #elif defined(Global_VECTOR_UPDATE_POS)
1315 # define Vector_UPDATE_POS(SELF,ELEMENT,INDEX) Global_VECTOR_UPDATE_POS(SELF,ELEMENT,INDEX)
1316 #elif defined(Global_ERWIN_UPDATE_POS)
1317 # define Vector_UPDATE_POS(SELF,ELEMENT,INDEX) Global_ERWIN_UPDATE_POS(SELF,ELEMENT,INDEX)
1318 #elif defined(ALL_ERWIN_UPDATE_POS)
1319 # define Vector_UPDATE_POS(SELF,ELEMENT,INDEX) ALL_ERWIN_UPDATE_POS(SELF,ELEMENT,INDEX)
1320 #endif
1321
1322
1323 #if defined(Vector_UPDATE_POS2)
1324 #elif defined(Global_VECTOR_UPDATE_POS2)
1325 # define Vector_UPDATE_POS2(SELF,ELEMENT1,INDEX1,ELEMENT2,INDEX2) Global_VECTOR_UPDATE_POS2(SELF,ELEMENT1,INDEX1,ELEMENT2,INDEX2)
1326 #elif defined(Global_ERWIN_UPDATE_POS2)
1327 # define Vector_UPDATE_POS2(SELF,ELEMENT1,INDEX1,ELEMENT2,INDEX2) Global_ERWIN_UPDATE_POS2(SELF,ELEMENT1,INDEX1,ELEMENT2,INDEX2)
1328 #elif defined(ALL_ERWIN_UPDATE_POS2)
1329 # define Vector_UPDATE_POS2(SELF,ELEMENT1,INDEX1,ELEMENT2,INDEX2) ALL_ERWIN_UPDATE_POS2(SELF,ELEMENT1,INDEX1,ELEMENT2,INDEX2)
1330 #endif
1331
1332
1333 #if defined(Vector_MANUAL_POSITION)
1334 # if ERWIN_BOOL_VALUE(Vector_MANUAL_POSITION)
1335 # undef Vector_MANUAL_POSITION
1336 # define Vector_MANUAL_POSITION 1
1337 # else
1338 # undef Vector_MANUAL_POSITION
1339 # define Vector_MANUAL_POSITION 0
1340 # endif
1341 #elif defined(Global_VECTOR_MANUAL_POSITION)
1342 # if ERWIN_BOOL_VALUE(Global_VECTOR_MANUAL_POSITION)
1343 # define Vector_MANUAL_POSITION 1
1344 # else
1345 # define Vector_MANUAL_POSITION 0
1346 # endif
1347 #elif defined(Global_ERWIN_MANUAL_POSITION)
1348 # if ERWIN_BOOL_VALUE(Global_ERWIN_MANUAL_POSITION)
1349 # define Vector_MANUAL_POSITION 1
1350 # else
1351 # define Vector_MANUAL_POSITION 0
1352 # endif
1353 #elif !defined(ALL_ERWIN_MANUAL_POSITION)
1354 # define Vector_MANUAL_POSITION 0
1355 #elif ERWIN_BOOL_VALUE(ALL_ERWIN_MANUAL_POSITION)
1356 # define Vector_MANUAL_POSITION 1
1357 #else
1358 # define Vector_MANUAL_POSITION 0
1359 #endif
1360
1361 #endif
1362 #endif