CFx SDK Documentation
2024 SP0
Loading...
Searching...
No Matches
SDK
CFx
dd_inc
OdaSTL.h
Go to the documentation of this file.
1
2
// Copyright (C) 2002-2022, Open Design Alliance (the "Alliance").
3
// All rights reserved.
4
//
5
// This software and its documentation and related materials are owned by
6
// the Alliance. The software may only be incorporated into application
7
// programs owned by members of the Alliance, subject to a signed
8
// Membership Agreement and Supplemental Software License Agreement with the
9
// Alliance. The structure and organization of this software are the valuable
10
// trade secrets of the Alliance and its suppliers. The software is also
11
// protected by copyright law and international treaty provisions. Application
12
// programs incorporating this software must include the following statement
13
// with their copyright notices:
14
//
15
// This application incorporates Open Design Alliance software pursuant to a license
16
// agreement with Open Design Alliance.
17
// Open Design Alliance Copyright (C) 2002-2022 by Open Design Alliance.
18
// All rights reserved.
19
//
20
// By use of this software, its documentation or related materials, you
21
// acknowledge and accept the above terms.
23
24
26
// Purpose: Declarations for using STL without warning noise.
27
//
28
// Usage: Include this file and define at least one of the STL_USING_xxx
29
// macros. Currently supported data types from the STL:
30
//
31
// // defines for using the STL
32
// #define STL_USING_ALL
33
// #define STL_USING_MAP
34
// #define STL_USING_VECTOR
35
// #define STL_USING_LIST
36
// #define STL_USING_STRING
37
// #define STL_USING_STREAM
38
// #define STL_USING_IOSTREAM
39
// #define STL_USING_MEMORY
40
// #define STL_USING_STACK
41
// #define STL_USING_ALGORITHM
42
// #define STL_USING_FUNCTIONAL
43
// #define STL_USING_UTILITY
44
// #define STL_USING_SET
45
// #define STL_USING_LIMITS
46
//
47
// Sample:
48
// #define STL_USING_ALL
49
// #include "OdaSTL.h"
50
//
51
// this file based on Oskar Wieland (oskar.wieland@gmx.de) STL.H
53
55
// include guards
57
58
// !!! Do not prevent the multiple include for this file
59
60
//#ifndef _ODA_STLHELPER_INCLUDED_
61
//#define _ODA_STLHELPER_INCLUDED_
62
63
65
// handy define to include all stuff
67
68
#ifdef STL_USING_ALL
69
70
#define STL_USING_MAP
71
#define STL_USING_VECTOR
72
#define STL_USING_LIST
73
#define STL_USING_STRING
74
#define STL_USING_STREAM
75
#define STL_USING_IOSTREAM
76
#define STL_USING_MEMORY
77
#define STL_USING_STACK
78
#define STL_USING_ALGORITHM
79
#define STL_USING_FUNCTIONAL
80
#define STL_USING_UTILITY
81
#define STL_USING_SET
82
#define STL_USING_LIMITS
83
84
#endif
85
86
88
// STL neccessary declaration for map
90
91
#ifdef STL_USING_MAP
92
93
#ifdef _MSC_VER
94
#pragma warning(push)
95
#endif
// _MSC_VER
96
97
#ifdef _MSC_VER
98
#include <yvals.h>
// warning numbers get enabled in yvals.h
99
#endif
100
101
#ifdef _MSC_VER
102
#pragma warning(disable: 4018)
// signed/unsigned mismatch
103
#pragma warning(disable: 4097)
// typedef-name 'identifier1' used as synonym for class-name 'identifier2'
104
#pragma warning(disable: 4100)
// unreferenced formal parameter
105
#pragma warning(disable: 4127)
// conditional expression is constant
106
#pragma warning(disable: 4146)
// unary minus operator applied to unsigned type, result still unsigned
107
#pragma warning(disable: 4244)
// 'conversion' conversion from 'type1' to 'type2', possible loss of data
108
#pragma warning(disable: 4245)
// conversion from 'type1' to 'type2', signed/unsigned mismatch
109
#pragma warning(disable: 4284)
// return type for 'identifier::operator ->' is not a UDT or reference
110
// to a UDT. Will produce errors if applied using infix notation
111
#pragma warning(disable: 4511)
// 'class' : copy constructor could not be generated
112
#pragma warning(disable: 4512)
// 'class' : assignment operator could not be generated
113
#pragma warning(disable: 4663)
// C++ language change: to explicitly specialize class template 'vector'
114
#pragma warning(disable: 4702)
// unreachable code
115
#pragma warning(disable: 4710)
// 'function' : function not inlined
116
#pragma warning(disable: 4786)
// identifier was truncated to 'number' characters in the debug information
117
118
// BUG: C4786 Warning Is Not Disabled with #pragma Warning
119
// STATUS: Microsoft has confirmed this to be a bug in the Microsoft product.
120
// This warning can be ignored. This occured only in the <map> container.
121
122
// MSVC8 /analyze warnings
123
#if _MSC_VER > 1310
124
#pragma warning( disable : 6011 )
125
#pragma warning( disable : 6219 )
126
#pragma warning( disable : 6221 )
127
#pragma warning( disable : 6255 )
128
#pragma warning( disable : 6308 )
129
#pragma warning( disable : 6320 )
130
#pragma warning( disable : 6321 )
131
#pragma warning( disable : 6387 )
132
#endif
// /analyze
133
#endif
// _MSC_VER
134
135
#include <map>
136
137
#ifdef _MSC_VER
138
#pragma warning(pop)
139
#endif
// _MSC_VER
140
141
#endif
//STL_USING_MAP
142
143
145
// STL neccessary declaration for vector
147
148
#ifdef STL_USING_VECTOR
149
150
#ifdef _MSC_VER
151
#pragma warning(push)
152
#endif
// _MSC_VER
153
154
#ifdef _MSC_VER
155
#include <yvals.h>
// warning numbers get enabled in yvals.h
156
#endif
157
158
#ifdef _MSC_VER
159
#pragma warning(disable: 4018)
// signed/unsigned mismatch
160
#pragma warning(disable: 4097)
// typedef-name 'identifier1' used as synonym for class-name 'identifier2'
161
#pragma warning(disable: 4100)
// unreferenced formal parameter
162
#pragma warning(disable: 4127)
// conditional expression is constant
163
#pragma warning(disable: 4146)
// unary minus operator applied to unsigned type, result still unsigned
164
#pragma warning(disable: 4244)
// 'conversion' conversion from 'type1' to 'type2', possible loss of data
165
#pragma warning(disable: 4245)
// conversion from 'type1' to 'type2', signed/unsigned mismatch
166
#pragma warning(disable: 4284)
// return type for 'identifier::operator ->' is not a UDT or reference
167
// to a UDT. Will produce errors if applied using infix notation
168
#pragma warning(disable: 4511)
// 'class' : copy constructor could not be generated
169
#pragma warning(disable: 4512)
// 'class' : assignment operator could not be generated
170
#pragma warning(disable: 4663)
// C++ language change: to explicitly specialize class template 'vector'
171
#pragma warning(disable: 4702)
// unreachable code
172
#pragma warning(disable: 4710)
// 'function' : function not inlined
173
#pragma warning(disable: 4786)
// identifier was truncated to 'number' characters in the debug information
174
175
// MSVC8 /analyze warnings
176
#if _MSC_VER > 1310
177
#pragma warning( disable : 6011 )
178
#pragma warning( disable : 6219 )
179
#pragma warning( disable : 6221 )
180
#pragma warning( disable : 6255 )
181
#pragma warning( disable : 6308 )
182
#pragma warning( disable : 6320 )
183
#pragma warning( disable : 6321 )
184
#pragma warning( disable : 6387 )
185
#endif
// /analyze
186
#endif
187
188
#include <vector>
189
190
#ifdef _MSC_VER
191
#pragma warning(pop)
192
#endif
// _MSC_VER
193
194
#endif
// STL_USING_VECTOR
195
196
198
// STL neccessary declaration for list
200
201
#ifdef STL_USING_LIST
202
203
#ifdef _MSC_VER
204
#pragma warning(push)
205
#endif
// _MSC_VER
206
207
#ifdef _MSC_VER
208
#include <yvals.h>
// warning numbers get enabled in yvals.h
209
#endif
210
211
#ifdef _MSC_VER
212
#pragma warning(disable: 4018)
// signed/unsigned mismatch
213
#pragma warning(disable: 4097)
// typedef-name 'identifier1' used as synonym for class-name 'identifier2'
214
#pragma warning(disable: 4100)
// unreferenced formal parameter
215
#pragma warning(disable: 4127)
// conditional expression is constant
216
#pragma warning(disable: 4146)
// unary minus operator applied to unsigned type, result still unsigned
217
#pragma warning(disable: 4244)
// 'conversion' conversion from 'type1' to 'type2', possible loss of data
218
#pragma warning(disable: 4245)
// conversion from 'type1' to 'type2', signed/unsigned mismatch
219
#pragma warning(disable: 4284)
// return type for 'identifier::operator ->' is not a UDT or reference
220
// to a UDT. Will produce errors if applied using infix notation
221
#pragma warning(disable: 4511)
// 'class' : copy constructor could not be generated
222
#pragma warning(disable: 4512)
// 'class' : assignment operator could not be generated
223
#pragma warning(disable: 4663)
// C++ language change: to explicitly specialize class template 'vector'
224
#pragma warning(disable: 4702)
// unreachable code
225
#pragma warning(disable: 4710)
// 'function' : function not inlined
226
#pragma warning(disable: 4786)
// identifier was truncated to 'number' characters in the debug information
227
// MSVC8 /analyze warnings
228
#if _MSC_VER > 1310
229
#pragma warning( disable : 6011 )
230
#pragma warning( disable : 6219 )
231
#pragma warning( disable : 6221 )
232
#pragma warning( disable : 6255 )
233
#pragma warning( disable : 6308 )
234
#pragma warning( disable : 6320 )
235
#pragma warning( disable : 6321 )
236
#pragma warning( disable : 6387 )
237
#endif
// /analyze
238
#endif
239
240
#include <list>
241
242
#ifdef _MSC_VER
243
#pragma warning(pop)
244
#endif
// _MSC_VER
245
246
#endif
// STL_USING_LIST
247
248
250
// STL neccessary declaration for string
252
253
#ifdef STL_USING_STRING
254
255
#ifdef _MSC_VER
256
#pragma warning(push)
257
#endif
// _MSC_VER
258
259
#ifdef _MSC_VER
260
#include <yvals.h>
// warning numbers get enabled in yvals.h
261
#endif
262
263
#ifdef _MSC_VER
264
#pragma warning(disable: 4018)
// signed/unsigned mismatch
265
#pragma warning(disable: 4097)
// typedef-name 'identifier1' used as synonym for class-name 'identifier2'
266
#pragma warning(disable: 4100)
// unreferenced formal parameter
267
#pragma warning(disable: 4127)
// conditional expression is constant
268
#pragma warning(disable: 4146)
// unary minus operator applied to unsigned type, result still unsigned
269
#pragma warning(disable: 4244)
// 'conversion' conversion from 'type1' to 'type2', possible loss of data
270
#pragma warning(disable: 4245)
// conversion from 'type1' to 'type2', signed/unsigned mismatch
271
#pragma warning(disable: 4284)
// return type for 'identifier::operator ->' is not a UDT or reference
272
// to a UDT. Will produce errors if applied using infix notation
273
#pragma warning(disable: 4511)
// 'class' : copy constructor could not be generated
274
#pragma warning(disable: 4512)
// 'class' : assignment operator could not be generated
275
#pragma warning(disable: 4663)
// C++ language change: to explicitly specialize class template 'vector'
276
#pragma warning(disable: 4702)
// unreachable code
277
#pragma warning(disable: 4710)
// 'function' : function not inlined
278
#pragma warning(disable: 4786)
// identifier was truncated to 'number' characters in the debug information
279
// MSVC8 /analyze warnings
280
#if _MSC_VER > 1310
281
#pragma warning( disable : 6011 )
282
#pragma warning( disable : 6219 )
283
#pragma warning( disable : 6221 )
284
#pragma warning( disable : 6255 )
285
#pragma warning( disable : 6308 )
286
#pragma warning( disable : 6320 )
287
#pragma warning( disable : 6321 )
288
#pragma warning( disable : 6387 )
289
#endif
// /analyze
290
#endif
291
292
#include <string>
293
294
#ifdef _MSC_VER
295
#pragma warning(pop)
296
#endif
// _MSC_VER
297
298
#ifdef _MSC_VER
299
#pragma warning(disable: 4514)
// unreferenced inline/local function has been removed
300
#pragma warning(disable: 4710)
// 'function' : function not inlined
301
#pragma warning(disable: 4786)
// identifier was truncated to 'number' characters
302
// in the debug information
303
#endif
304
305
#endif
// STL_USING_STRING
306
307
309
// STL neccessary declaration for streams
311
312
#ifdef STL_USING_STREAM
313
314
#ifdef _MSC_VER
315
#pragma warning(push)
316
#endif
// _MSC_VER
317
318
#ifdef _MSC_VER
319
#include <yvals.h>
// warning numbers get enabled in yvals.h
320
#endif
321
322
#ifdef _MSC_VER
323
#pragma warning(disable: 4018)
// signed/unsigned mismatch
324
#pragma warning(disable: 4097)
// typedef-name 'identifier1' used as synonym for class-name 'identifier2'
325
#pragma warning(disable: 4100)
// unreferenced formal parameter
326
#pragma warning(disable: 4127)
// conditional expression is constant
327
#pragma warning(disable: 4146)
// unary minus operator applied to unsigned type, result still unsigned
328
#pragma warning(disable: 4244)
// 'conversion' conversion from 'type1' to 'type2', possible loss of data
329
#pragma warning(disable: 4245)
// conversion from 'type1' to 'type2', signed/unsigned mismatch
330
#pragma warning(disable: 4284)
// return type for 'identifier::operator ->' is not a UDT or reference
331
// to a UDT. Will produce errors if applied using infix notation
332
#pragma warning(disable: 4511)
// 'class' : copy constructor could not be generated
333
#pragma warning(disable: 4512)
// 'class' : assignment operator could not be generated
334
#pragma warning(disable: 4663)
// C++ language change: to explicitly specialize class template 'vector'
335
#pragma warning(disable: 4702)
// unreachable code
336
#pragma warning(disable: 4710)
// 'function' : function not inlined
337
#pragma warning(disable: 4786)
// identifier was truncated to 'number' characters in the debug information
338
// MSVC8 /analyze warnings
339
#if _MSC_VER > 1310
340
#pragma warning( disable : 6011 )
341
#pragma warning( disable : 6219 )
342
#pragma warning( disable : 6221 )
343
#pragma warning( disable : 6255 )
344
#pragma warning( disable : 6308 )
345
#pragma warning( disable : 6320 )
346
#pragma warning( disable : 6321 )
347
#pragma warning( disable : 6387 )
348
#endif
// /analyze
349
#endif
350
351
#ifdef OD_HAVE_SSTREAM_FILE
352
#include <sstream>
353
#endif
354
355
#ifdef OD_HAVE_FSTREAM_FILE
356
#include <fstream>
357
#endif
358
359
#ifdef _MSC_VER
360
#pragma warning(pop)
361
#endif
// _MSC_VER
362
363
#endif
//STL_USING_STREAM
364
365
367
// STL neccessary declaration for input/output streams
369
370
#ifdef STL_USING_IOSTREAM
371
372
#ifdef _MSC_VER
373
#pragma warning(push)
374
#endif
// _MSC_VER
375
376
#ifdef _MSC_VER
377
#include <yvals.h>
// warning numbers get enabled in yvals.h
378
#endif
379
380
#ifdef _MSC_VER
381
#pragma warning(disable: 4018)
// signed/unsigned mismatch
382
#pragma warning(disable: 4097)
// typedef-name 'identifier1' used as synonym for class-name 'identifier2'
383
#pragma warning(disable: 4100)
// unreferenced formal parameter
384
#pragma warning(disable: 4127)
// conditional expression is constant
385
#pragma warning(disable: 4146)
// unary minus operator applied to unsigned type, result still unsigned
386
#pragma warning(disable: 4244)
// 'conversion' conversion from 'type1' to 'type2', possible loss of data
387
#pragma warning(disable: 4245)
// conversion from 'type1' to 'type2', signed/unsigned mismatch
388
#pragma warning(disable: 4284)
// return type for 'identifier::operator ->' is not a UDT or reference
389
// to a UDT. Will produce errors if applied using infix notation
390
#pragma warning(disable: 4511)
// 'class' : copy constructor could not be generated
391
#pragma warning(disable: 4512)
// 'class' : assignment operator could not be generated
392
#pragma warning(disable: 4663)
// C++ language change: to explicitly specialize class template 'vector'
393
#pragma warning(disable: 4702)
// unreachable code
394
#pragma warning(disable: 4710)
// 'function' : function not inlined
395
#pragma warning(disable: 4786)
// identifier was truncated to 'number' characters in the debug information
396
// MSVC8 /analyze warnings
397
#if _MSC_VER > 1310
398
#pragma warning( disable : 6011 )
399
#pragma warning( disable : 6219 )
400
#pragma warning( disable : 6221 )
401
#pragma warning( disable : 6255 )
402
#pragma warning( disable : 6308 )
403
#pragma warning( disable : 6320 )
404
#pragma warning( disable : 6321 )
405
#pragma warning( disable : 6387 )
406
#endif
// /analyze
407
#endif
408
409
#include <iostream>
410
#ifdef OD_HAVE_IOMANIP_FILE
411
#include <iomanip>
412
#endif
413
414
#ifdef _MSC_VER
415
#pragma warning(pop)
416
#endif
// _MSC_VER
417
418
#endif
//STL_USING_IOSTREAM
419
421
// STL neccessary declaration for memory
423
424
#ifdef STL_USING_MEMORY
425
426
#ifdef _MSC_VER
427
#pragma warning(push)
428
#endif
// _MSC_VER
429
430
#ifdef _MSC_VER
431
#include <yvals.h>
// warning numbers get enabled in yvals.h
432
#endif
433
434
#ifdef _MSC_VER
435
#pragma warning(disable: 4018)
// signed/unsigned mismatch
436
#pragma warning(disable: 4097)
// typedef-name 'identifier1' used as synonym for class-name 'identifier2'
437
#pragma warning(disable: 4100)
// unreferenced formal parameter
438
#pragma warning(disable: 4127)
// conditional expression is constant
439
#pragma warning(disable: 4146)
// unary minus operator applied to unsigned type, result still unsigned
440
#pragma warning(disable: 4244)
// 'conversion' conversion from 'type1' to 'type2', possible loss of data
441
#pragma warning(disable: 4245)
// conversion from 'type1' to 'type2', signed/unsigned mismatch
442
#pragma warning(disable: 4284)
// return type for 'identifier::operator ->' is not a UDT or reference
443
// to a UDT. Will produce errors if applied using infix notation
444
#pragma warning(disable: 4511)
// 'class' : copy constructor could not be generated
445
#pragma warning(disable: 4512)
// 'class' : assignment operator could not be generated
446
#pragma warning(disable: 4663)
// C++ language change: to explicitly specialize class template 'vector'
447
#pragma warning(disable: 4702)
// unreachable code
448
#pragma warning(disable: 4710)
// 'function' : function not inlined
449
#pragma warning(disable: 4786)
// identifier was truncated to 'number' characters in the debug information
450
// MSVC8 /analyze warnings
451
#if _MSC_VER > 1310
452
#pragma warning( disable : 6011 )
453
#pragma warning( disable : 6219 )
454
#pragma warning( disable : 6221 )
455
#pragma warning( disable : 6255 )
456
#pragma warning( disable : 6308 )
457
#pragma warning( disable : 6320 )
458
#pragma warning( disable : 6321 )
459
#pragma warning( disable : 6387 )
460
#endif
// /analyze
461
#endif
462
463
#include <memory>
464
465
#ifdef _MSC_VER
466
#pragma warning(pop)
467
#endif
// _MSC_VER
468
469
470
471
#endif
//STL_USING_MEMORY
472
473
475
// STL neccessary declaration for stack
477
478
#ifdef STL_USING_STACK
479
480
#ifdef _MSC_VER
481
#pragma warning(push)
482
#endif
// _MSC_VER
483
484
#ifdef _MSC_VER
485
#include <yvals.h>
// warning numbers get enabled in yvals.h
486
#endif
487
488
#ifdef _MSC_VER
489
#pragma warning(disable: 4018)
// signed/unsigned mismatch
490
#pragma warning(disable: 4097)
// typedef-name 'identifier1' used as synonym for class-name 'identifier2'
491
#pragma warning(disable: 4100)
// unreferenced formal parameter
492
#pragma warning(disable: 4127)
// conditional expression is constant
493
#pragma warning(disable: 4146)
// unary minus operator applied to unsigned type, result still unsigned
494
#pragma warning(disable: 4244)
// 'conversion' conversion from 'type1' to 'type2', possible loss of data
495
#pragma warning(disable: 4245)
// conversion from 'type1' to 'type2', signed/unsigned mismatch
496
#pragma warning(disable: 4284)
// return type for 'identifier::operator ->' is not a UDT or reference
497
// to a UDT. Will produce errors if applied using infix notation
498
#pragma warning(disable: 4511)
// 'class' : copy constructor could not be generated
499
#pragma warning(disable: 4512)
// 'class' : assignment operator could not be generated
500
#pragma warning(disable: 4663)
// C++ language change: to explicitly specialize class template 'vector'
501
#pragma warning(disable: 4702)
// unreachable code
502
#pragma warning(disable: 4710)
// 'function' : function not inlined
503
#pragma warning(disable: 4786)
// identifier was truncated to 'number' characters in the debug information
504
// MSVC8 /analyze warnings
505
#if _MSC_VER > 1310
506
#pragma warning( disable : 6011 )
507
#pragma warning( disable : 6219 )
508
#pragma warning( disable : 6221 )
509
#pragma warning( disable : 6255 )
510
#pragma warning( disable : 6308 )
511
#pragma warning( disable : 6320 )
512
#pragma warning( disable : 6321 )
513
#pragma warning( disable : 6387 )
514
#endif
// /analyze
515
#endif
516
517
#include <stack>
518
519
#ifdef _MSC_VER
520
#pragma warning(pop)
521
#endif
// _MSC_VER
522
523
#endif
// STL_USING_STACK
524
525
526
#ifdef STL_USING_QUEUE
527
528
#ifdef _MSC_VER
529
#pragma warning(push)
530
#endif
// _MSC_VER
531
532
#ifdef _MSC_VER
533
#include <yvals.h>
// warning numbers get enabled in yvals.h
534
#endif
535
536
#ifdef _MSC_VER
537
#pragma warning(disable: 4018)
// signed/unsigned mismatch
538
#pragma warning(disable: 4097)
// typedef-name 'identifier1' used as synonym for class-name 'identifier2'
539
#pragma warning(disable: 4100)
// unreferenced formal parameter
540
#pragma warning(disable: 4127)
// conditional expression is constant
541
#pragma warning(disable: 4146)
// unary minus operator applied to unsigned type, result still unsigned
542
#pragma warning(disable: 4244)
// 'conversion' conversion from 'type1' to 'type2', possible loss of data
543
#pragma warning(disable: 4245)
// conversion from 'type1' to 'type2', signed/unsigned mismatch
544
#pragma warning(disable: 4284)
// return type for 'identifier::operator ->' is not a UDT or reference
545
// to a UDT. Will produce errors if applied using infix notation
546
#pragma warning(disable: 4511)
// 'class' : copy constructor could not be generated
547
#pragma warning(disable: 4512)
// 'class' : assignment operator could not be generated
548
#pragma warning(disable: 4663)
// C++ language change: to explicitly specialize class template 'vector'
549
#pragma warning(disable: 4702)
// unreachable code
550
#pragma warning(disable: 4710)
// 'function' : function not inlined
551
#pragma warning(disable: 4786)
// identifier was truncated to 'number' characters in the debug information
552
// MSVC8 /analyze warnings
553
#if _MSC_VER > 1310
554
#pragma warning( disable : 6011 )
555
#pragma warning( disable : 6219 )
556
#pragma warning( disable : 6221 )
557
#pragma warning( disable : 6255 )
558
#pragma warning( disable : 6308 )
559
#pragma warning( disable : 6320 )
560
#pragma warning( disable : 6321 )
561
#pragma warning( disable : 6387 )
562
#endif
// /analyze
563
#endif
564
565
#include <queue>
566
567
#ifdef _MSC_VER
568
#pragma warning(pop)
569
#endif
// _MSC_VER
570
571
#endif
// STL_USING_STACK
572
574
// STL neccessary declaration for algorithm
576
577
#ifdef STL_USING_ALGORITHM
578
579
#ifdef _MSC_VER
580
#pragma warning(push)
581
#endif
// _MSC_VER
582
583
#ifdef _MSC_VER
584
#include <yvals.h>
// warning numbers get enabled in yvals.h
585
#endif
586
587
#ifdef _MSC_VER
588
#pragma warning(disable: 4018)
// signed/unsigned mismatch
589
#pragma warning(disable: 4097)
// typedef-name 'identifier1' used as synonym for class-name 'identifier2'
590
#pragma warning(disable: 4100)
// unreferenced formal parameter
591
#pragma warning(disable: 4127)
// conditional expression is constant
592
#pragma warning(disable: 4146)
// unary minus operator applied to unsigned type, result still unsigned
593
#pragma warning(disable: 4244)
// 'conversion' conversion from 'type1' to 'type2', possible loss of data
594
#pragma warning(disable: 4245)
// conversion from 'type1' to 'type2', signed/unsigned mismatch
595
#pragma warning(disable: 4284)
// return type for 'identifier::operator ->' is not a UDT or reference
596
// to a UDT. Will produce errors if applied using infix notation
597
#pragma warning(disable: 4511)
// 'class' : copy constructor could not be generated
598
#pragma warning(disable: 4512)
// 'class' : assignment operator could not be generated
599
#pragma warning(disable: 4663)
// C++ language change: to explicitly specialize class template 'vector'
600
#pragma warning(disable: 4702)
// unreachable code
601
#pragma warning(disable: 4710)
// 'function' : function not inlined
602
#pragma warning(disable: 4786)
// identifier was truncated to 'number' characters in the debug information
603
// MSVC8 /analyze warnings
604
#if _MSC_VER > 1310
605
#pragma warning( disable : 6011 )
606
#pragma warning( disable : 6219 )
607
#pragma warning( disable : 6221 )
608
#pragma warning( disable : 6255 )
609
#pragma warning( disable : 6308 )
610
#pragma warning( disable : 6320 )
611
#pragma warning( disable : 6321 )
612
#pragma warning( disable : 6387 )
613
#endif
// /analyze
614
#endif
615
616
#include <algorithm>
617
#include <iterator>
618
619
// in STLPORT used with BCC 5.6 std::remove clashes with remove(char*) from iostream
620
#ifdef __SGI_STL_PORT
626
namespace
std
627
{
628
using
_STLP_STD::remove;
629
}
630
#endif
631
632
#ifdef _MSC_VER
633
#pragma warning(pop)
634
#endif
// _MSC_VER
635
636
#endif
// STL_USING_ALGORITHM
637
639
// STL neccessary declaration for functional
641
642
#ifdef STL_USING_FUNCTIONAL
643
644
#ifdef _MSC_VER
645
#pragma warning(push)
646
#endif
// _MSC_VER
647
648
#ifdef _MSC_VER
649
#include <yvals.h>
// warning numbers get enabled in yvals.h
650
#endif
651
652
#ifdef _MSC_VER
653
#pragma warning(disable: 4018)
// signed/unsigned mismatch
654
#pragma warning(disable: 4097)
// typedef-name 'identifier1' used as synonym for class-name 'identifier2'
655
#pragma warning(disable: 4100)
// unreferenced formal parameter
656
#pragma warning(disable: 4127)
// conditional expression is constant
657
#pragma warning(disable: 4146)
// unary minus operator applied to unsigned type, result still unsigned
658
#pragma warning(disable: 4244)
// 'conversion' conversion from 'type1' to 'type2', possible loss of data
659
#pragma warning(disable: 4245)
// conversion from 'type1' to 'type2', signed/unsigned mismatch
660
#pragma warning(disable: 4284)
// return type for 'identifier::operator ->' is not a UDT or reference
661
// to a UDT. Will produce errors if applied using infix notation
662
#pragma warning(disable: 4511)
// 'class' : copy constructor could not be generated
663
#pragma warning(disable: 4512)
// 'class' : assignment operator could not be generated
664
#pragma warning(disable: 4663)
// C++ language change: to explicitly specialize class template 'vector'
665
#pragma warning(disable: 4702)
// unreachable code
666
#pragma warning(disable: 4710)
// 'function' : function not inlined
667
#pragma warning(disable: 4786)
// identifier was truncated to 'number' characters in the debug information
668
// MSVC8 /analyze warnings
669
#if _MSC_VER > 1310
670
#pragma warning( disable : 6011 )
671
#pragma warning( disable : 6219 )
672
#pragma warning( disable : 6221 )
673
#pragma warning( disable : 6255 )
674
#pragma warning( disable : 6308 )
675
#pragma warning( disable : 6320 )
676
#pragma warning( disable : 6321 )
677
#pragma warning( disable : 6387 )
678
#endif
// /analyze
679
#endif
680
681
#include <functional>
682
683
#ifdef _MSC_VER
684
#pragma warning(pop)
685
#endif
// _MSC_VER
686
687
#endif
// STL_USING_FUNCTIONAL
688
689
691
// STL neccessary declaration for utilities
693
694
#ifdef STL_USING_UTILITY
695
696
#ifdef _MSC_VER
697
#pragma warning(push)
698
#endif
// _MSC_VER
699
700
#ifdef _MSC_VER
701
#include <yvals.h>
// warning numbers get enabled in yvals.h
702
#endif
703
704
#ifdef _MSC_VER
705
#pragma warning(disable: 4018)
// signed/unsigned mismatch
706
#pragma warning(disable: 4097)
// typedef-name 'identifier1' used as synonym for class-name 'identifier2'
707
#pragma warning(disable: 4100)
// unreferenced formal parameter
708
#pragma warning(disable: 4127)
// conditional expression is constant
709
#pragma warning(disable: 4146)
// unary minus operator applied to unsigned type, result still unsigned
710
#pragma warning(disable: 4244)
// 'conversion' conversion from 'type1' to 'type2', possible loss of data
711
#pragma warning(disable: 4245)
// conversion from 'type1' to 'type2', signed/unsigned mismatch
712
#pragma warning(disable: 4284)
// return type for 'identifier::operator ->' is not a UDT or reference
713
// to a UDT. Will produce errors if applied using infix notation
714
#pragma warning(disable: 4511)
// 'class' : copy constructor could not be generated
715
#pragma warning(disable: 4512)
// 'class' : assignment operator could not be generated
716
#pragma warning(disable: 4663)
// C++ language change: to explicitly specialize class template 'vector'
717
#pragma warning(disable: 4702)
// unreachable code
718
#pragma warning(disable: 4710)
// 'function' : function not inlined
719
#pragma warning(disable: 4786)
// identifier was truncated to 'number' characters in the debug information
720
// MSVC8 /analyze warnings
721
#if _MSC_VER > 1310
722
#pragma warning( disable : 6011 )
723
#pragma warning( disable : 6219 )
724
#pragma warning( disable : 6221 )
725
#pragma warning( disable : 6255 )
726
#pragma warning( disable : 6308 )
727
#pragma warning( disable : 6320 )
728
#pragma warning( disable : 6321 )
729
#pragma warning( disable : 6387 )
730
#endif
// /analyze
731
#endif
732
733
#include <utility>
734
735
#ifdef _MSC_VER
736
#pragma warning(pop)
737
#endif
// _MSC_VER
738
739
#endif
// STL_USING_FUNCTIONAL
740
741
#ifdef STL_USING_SET
742
743
#ifdef _MSC_VER
744
#pragma warning(push)
745
#endif
// _MSC_VER
746
747
#ifdef _MSC_VER
748
#include <yvals.h>
// warning numbers get enabled in yvals.h
749
#endif
750
751
#ifdef _MSC_VER
752
#pragma warning(disable: 4018)
// signed/unsigned mismatch
753
#pragma warning(disable: 4097)
// typedef-name 'identifier1' used as synonym for class-name 'identifier2'
754
#pragma warning(disable: 4100)
// unreferenced formal parameter
755
#pragma warning(disable: 4127)
// conditional expression is constant
756
#pragma warning(disable: 4146)
// unary minus operator applied to unsigned type, result still unsigned
757
#pragma warning(disable: 4244)
// 'conversion' conversion from 'type1' to 'type2', possible loss of data
758
#pragma warning(disable: 4245)
// conversion from 'type1' to 'type2', signed/unsigned mismatch
759
#pragma warning(disable: 4284)
// return type for 'identifier::operator ->' is not a UDT or reference
760
// to a UDT. Will produce errors if applied using infix notation
761
#pragma warning(disable: 4511)
// 'class' : copy constructor could not be generated
762
#pragma warning(disable: 4512)
// 'class' : assignment operator could not be generated
763
#pragma warning(disable: 4702)
// unreachable code
764
#pragma warning(disable: 4710)
// 'function' : function not inlined
765
#pragma warning(disable: 4786)
// identifier was truncated to 'number' characters in the debug information
766
// MSVC8 /analyze warnings
767
#if _MSC_VER > 1310
768
#pragma warning( disable : 6011 )
769
#pragma warning( disable : 6219 )
770
#pragma warning( disable : 6221 )
771
#pragma warning( disable : 6255 )
772
#pragma warning( disable : 6308 )
773
#pragma warning( disable : 6320 )
774
#pragma warning( disable : 6321 )
775
#pragma warning( disable : 6387 )
776
#endif
// /analyze
777
#endif
778
779
#include <set>
780
781
#ifdef _MSC_VER
782
#pragma warning(pop)
783
#endif
// _MSC_VER
784
785
#endif
// STL_USING_SET
786
787
#ifdef STL_USING_LIMITS
788
789
#ifdef _MSC_VER
790
#pragma warning(push)
791
#include <yvals.h>
// warning numbers get enabled in yvals.h
792
#pragma warning(disable: 4663)
// C++ language change: to explicitly specialize class template ...
793
794
#undef min
// in windows header min & max are defined
795
#undef max
796
797
#endif
// _MSC_VER
798
799
#include <limits>
800
801
#ifdef _MSC_VER
802
#pragma warning(pop)
803
#endif
// _MSC_VER
804
805
#endif
// STL_USING_LIMITS
806
807
809
// verify proper use of macros
811
812
#if defined(STL_USING_MAP) || defined(STL_USING_VECTOR) || defined(STL_USING_LIST) || \
813
defined(STL_USING_STRING) || defined(STL_USING_STREAM) || defined STL_USING_FUNCTIONAL || \
814
defined(STL_USING_MEMORY) || defined(STL_USING_STACK) || defined STL_USING_ALGORITHM || \
815
defined(STL_USING_UTILITY) || defined(STL_USING_IOSTREAM) || defined(STL_USING_SET) || \
816
defined(STL_USING_LIMITS)
817
818
#define _ODA_STL_
819
820
#else
821
#pragma message( "Warning: You included \"OdaSTL.H\" without using any STL features!"
)
822
823
#endif
824
825
//#endif // _ODA_STLHELPER_INCLUDED_
826
Generated on Wed Apr 5 2023 17:29:20