CFx SDK Documentation
2020SP3
SDK
CFx
dd_inc
OdaSTL.h
Go to the documentation of this file.
1
// Copyright (C) 2002-2017, 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 Teigha(R) software pursuant to a license
16
// agreement with Open Design Alliance.
17
// Teigha(R) Copyright (C) 2002-2017 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
// The STL library provides a type called auto_ptr for managing pointers.
427
// This template class acts as a stack variable for dynamically allocated
428
// memory. When the variable goes out of scope, its destructor gets called.
429
// In its destructor, it calls delete on the contained pointer, making sure
430
// that the memory is returned to the heap.
431
432
#ifdef _MSC_VER
433
#pragma warning(push)
434
#endif // _MSC_VER
435
436
#ifdef _MSC_VER
437
#include <yvals.h>
// warning numbers get enabled in yvals.h
438
#endif
439
440
#ifdef _MSC_VER
441
#pragma warning(disable: 4018) // signed/unsigned mismatch
442
#pragma warning(disable: 4097) // typedef-name 'identifier1' used as synonym for class-name 'identifier2'
443
#pragma warning(disable: 4100) // unreferenced formal parameter
444
#pragma warning(disable: 4127) // conditional expression is constant
445
#pragma warning(disable: 4146) // unary minus operator applied to unsigned type, result still unsigned
446
#pragma warning(disable: 4244) // 'conversion' conversion from 'type1' to 'type2', possible loss of data
447
#pragma warning(disable: 4245) // conversion from 'type1' to 'type2', signed/unsigned mismatch
448
#pragma warning(disable: 4284) // return type for 'identifier::operator ->' is not a UDT or reference
449
// to a UDT. Will produce errors if applied using infix notation
450
#pragma warning(disable: 4511) // 'class' : copy constructor could not be generated
451
#pragma warning(disable: 4512) // 'class' : assignment operator could not be generated
452
#pragma warning(disable: 4663) // C++ language change: to explicitly specialize class template 'vector'
453
#pragma warning(disable: 4702) // unreachable code
454
#pragma warning(disable: 4710) // 'function' : function not inlined
455
#pragma warning(disable: 4786) // identifier was truncated to 'number' characters in the debug information
456
// MSVC8 /analyze warnings
457
#if _MSC_VER > 1310
458
#pragma warning( disable : 6011 )
459
#pragma warning( disable : 6219 )
460
#pragma warning( disable : 6221 )
461
#pragma warning( disable : 6255 )
462
#pragma warning( disable : 6308 )
463
#pragma warning( disable : 6320 )
464
#pragma warning( disable : 6321 )
465
#pragma warning( disable : 6387 )
466
#endif // /analyze
467
#endif
468
469
#include <memory>
470
471
#ifdef _MSC_VER
472
#pragma warning(pop)
473
#endif // _MSC_VER
474
475
#endif //STL_USING_MEMORY
476
477
479
// STL neccessary declaration for stack
481
482
#ifdef STL_USING_STACK
483
484
#ifdef _MSC_VER
485
#pragma warning(push)
486
#endif // _MSC_VER
487
488
#ifdef _MSC_VER
489
#include <yvals.h>
// warning numbers get enabled in yvals.h
490
#endif
491
492
#ifdef _MSC_VER
493
#pragma warning(disable: 4018) // signed/unsigned mismatch
494
#pragma warning(disable: 4097) // typedef-name 'identifier1' used as synonym for class-name 'identifier2'
495
#pragma warning(disable: 4100) // unreferenced formal parameter
496
#pragma warning(disable: 4127) // conditional expression is constant
497
#pragma warning(disable: 4146) // unary minus operator applied to unsigned type, result still unsigned
498
#pragma warning(disable: 4244) // 'conversion' conversion from 'type1' to 'type2', possible loss of data
499
#pragma warning(disable: 4245) // conversion from 'type1' to 'type2', signed/unsigned mismatch
500
#pragma warning(disable: 4284) // return type for 'identifier::operator ->' is not a UDT or reference
501
// to a UDT. Will produce errors if applied using infix notation
502
#pragma warning(disable: 4511) // 'class' : copy constructor could not be generated
503
#pragma warning(disable: 4512) // 'class' : assignment operator could not be generated
504
#pragma warning(disable: 4663) // C++ language change: to explicitly specialize class template 'vector'
505
#pragma warning(disable: 4702) // unreachable code
506
#pragma warning(disable: 4710) // 'function' : function not inlined
507
#pragma warning(disable: 4786) // identifier was truncated to 'number' characters in the debug information
508
// MSVC8 /analyze warnings
509
#if _MSC_VER > 1310
510
#pragma warning( disable : 6011 )
511
#pragma warning( disable : 6219 )
512
#pragma warning( disable : 6221 )
513
#pragma warning( disable : 6255 )
514
#pragma warning( disable : 6308 )
515
#pragma warning( disable : 6320 )
516
#pragma warning( disable : 6321 )
517
#pragma warning( disable : 6387 )
518
#endif // /analyze
519
#endif
520
521
#include <stack>
522
523
#ifdef _MSC_VER
524
#pragma warning(pop)
525
#endif // _MSC_VER
526
527
#endif // STL_USING_STACK
528
529
530
#ifdef STL_USING_QUEUE
531
532
#ifdef _MSC_VER
533
#pragma warning(push)
534
#endif // _MSC_VER
535
536
#ifdef _MSC_VER
537
#include <yvals.h>
// warning numbers get enabled in yvals.h
538
#endif
539
540
#ifdef _MSC_VER
541
#pragma warning(disable: 4018) // signed/unsigned mismatch
542
#pragma warning(disable: 4097) // typedef-name 'identifier1' used as synonym for class-name 'identifier2'
543
#pragma warning(disable: 4100) // unreferenced formal parameter
544
#pragma warning(disable: 4127) // conditional expression is constant
545
#pragma warning(disable: 4146) // unary minus operator applied to unsigned type, result still unsigned
546
#pragma warning(disable: 4244) // 'conversion' conversion from 'type1' to 'type2', possible loss of data
547
#pragma warning(disable: 4245) // conversion from 'type1' to 'type2', signed/unsigned mismatch
548
#pragma warning(disable: 4284) // return type for 'identifier::operator ->' is not a UDT or reference
549
// to a UDT. Will produce errors if applied using infix notation
550
#pragma warning(disable: 4511) // 'class' : copy constructor could not be generated
551
#pragma warning(disable: 4512) // 'class' : assignment operator could not be generated
552
#pragma warning(disable: 4663) // C++ language change: to explicitly specialize class template 'vector'
553
#pragma warning(disable: 4702) // unreachable code
554
#pragma warning(disable: 4710) // 'function' : function not inlined
555
#pragma warning(disable: 4786) // identifier was truncated to 'number' characters in the debug information
556
// MSVC8 /analyze warnings
557
#if _MSC_VER > 1310
558
#pragma warning( disable : 6011 )
559
#pragma warning( disable : 6219 )
560
#pragma warning( disable : 6221 )
561
#pragma warning( disable : 6255 )
562
#pragma warning( disable : 6308 )
563
#pragma warning( disable : 6320 )
564
#pragma warning( disable : 6321 )
565
#pragma warning( disable : 6387 )
566
#endif // /analyze
567
#endif
568
569
#include <queue>
570
571
#ifdef _MSC_VER
572
#pragma warning(pop)
573
#endif // _MSC_VER
574
575
#endif // STL_USING_STACK
576
578
// STL neccessary declaration for algorithm
580
581
#ifdef STL_USING_ALGORITHM
582
583
#ifdef _MSC_VER
584
#pragma warning(push)
585
#endif // _MSC_VER
586
587
#ifdef _MSC_VER
588
#include <yvals.h>
// warning numbers get enabled in yvals.h
589
#endif
590
591
#ifdef _MSC_VER
592
#pragma warning(disable: 4018) // signed/unsigned mismatch
593
#pragma warning(disable: 4097) // typedef-name 'identifier1' used as synonym for class-name 'identifier2'
594
#pragma warning(disable: 4100) // unreferenced formal parameter
595
#pragma warning(disable: 4127) // conditional expression is constant
596
#pragma warning(disable: 4146) // unary minus operator applied to unsigned type, result still unsigned
597
#pragma warning(disable: 4244) // 'conversion' conversion from 'type1' to 'type2', possible loss of data
598
#pragma warning(disable: 4245) // conversion from 'type1' to 'type2', signed/unsigned mismatch
599
#pragma warning(disable: 4284) // return type for 'identifier::operator ->' is not a UDT or reference
600
// to a UDT. Will produce errors if applied using infix notation
601
#pragma warning(disable: 4511) // 'class' : copy constructor could not be generated
602
#pragma warning(disable: 4512) // 'class' : assignment operator could not be generated
603
#pragma warning(disable: 4663) // C++ language change: to explicitly specialize class template 'vector'
604
#pragma warning(disable: 4702) // unreachable code
605
#pragma warning(disable: 4710) // 'function' : function not inlined
606
#pragma warning(disable: 4786) // identifier was truncated to 'number' characters in the debug information
607
// MSVC8 /analyze warnings
608
#if _MSC_VER > 1310
609
#pragma warning( disable : 6011 )
610
#pragma warning( disable : 6219 )
611
#pragma warning( disable : 6221 )
612
#pragma warning( disable : 6255 )
613
#pragma warning( disable : 6308 )
614
#pragma warning( disable : 6320 )
615
#pragma warning( disable : 6321 )
616
#pragma warning( disable : 6387 )
617
#endif // /analyze
618
#endif
619
620
#include <algorithm>
621
#include <iterator>
622
623
// in STLPORT used with BCC 5.6 std::remove clashes with remove(char*) from iostream
624
#ifdef __SGI_STL_PORT
625
630
namespace
std
631
{
632
using
_STLP_STD::remove;
633
}
634
#endif
635
636
#ifdef _MSC_VER
637
#pragma warning(pop)
638
#endif // _MSC_VER
639
640
#endif // STL_USING_ALGORITHM
641
643
// STL neccessary declaration for functional
645
646
#ifdef STL_USING_FUNCTIONAL
647
648
#ifdef _MSC_VER
649
#pragma warning(push)
650
#endif // _MSC_VER
651
652
#ifdef _MSC_VER
653
#include <yvals.h>
// warning numbers get enabled in yvals.h
654
#endif
655
656
#ifdef _MSC_VER
657
#pragma warning(disable: 4018) // signed/unsigned mismatch
658
#pragma warning(disable: 4097) // typedef-name 'identifier1' used as synonym for class-name 'identifier2'
659
#pragma warning(disable: 4100) // unreferenced formal parameter
660
#pragma warning(disable: 4127) // conditional expression is constant
661
#pragma warning(disable: 4146) // unary minus operator applied to unsigned type, result still unsigned
662
#pragma warning(disable: 4244) // 'conversion' conversion from 'type1' to 'type2', possible loss of data
663
#pragma warning(disable: 4245) // conversion from 'type1' to 'type2', signed/unsigned mismatch
664
#pragma warning(disable: 4284) // return type for 'identifier::operator ->' is not a UDT or reference
665
// to a UDT. Will produce errors if applied using infix notation
666
#pragma warning(disable: 4511) // 'class' : copy constructor could not be generated
667
#pragma warning(disable: 4512) // 'class' : assignment operator could not be generated
668
#pragma warning(disable: 4663) // C++ language change: to explicitly specialize class template 'vector'
669
#pragma warning(disable: 4702) // unreachable code
670
#pragma warning(disable: 4710) // 'function' : function not inlined
671
#pragma warning(disable: 4786) // identifier was truncated to 'number' characters in the debug information
672
// MSVC8 /analyze warnings
673
#if _MSC_VER > 1310
674
#pragma warning( disable : 6011 )
675
#pragma warning( disable : 6219 )
676
#pragma warning( disable : 6221 )
677
#pragma warning( disable : 6255 )
678
#pragma warning( disable : 6308 )
679
#pragma warning( disable : 6320 )
680
#pragma warning( disable : 6321 )
681
#pragma warning( disable : 6387 )
682
#endif // /analyze
683
#endif
684
685
#include <functional>
686
687
#ifdef _MSC_VER
688
#pragma warning(pop)
689
#endif // _MSC_VER
690
691
#endif // STL_USING_FUNCTIONAL
692
693
695
// STL neccessary declaration for utilities
697
698
#ifdef STL_USING_UTILITY
699
700
#ifdef _MSC_VER
701
#pragma warning(push)
702
#endif // _MSC_VER
703
704
#ifdef _MSC_VER
705
#include <yvals.h>
// warning numbers get enabled in yvals.h
706
#endif
707
708
#ifdef _MSC_VER
709
#pragma warning(disable: 4018) // signed/unsigned mismatch
710
#pragma warning(disable: 4097) // typedef-name 'identifier1' used as synonym for class-name 'identifier2'
711
#pragma warning(disable: 4100) // unreferenced formal parameter
712
#pragma warning(disable: 4127) // conditional expression is constant
713
#pragma warning(disable: 4146) // unary minus operator applied to unsigned type, result still unsigned
714
#pragma warning(disable: 4244) // 'conversion' conversion from 'type1' to 'type2', possible loss of data
715
#pragma warning(disable: 4245) // conversion from 'type1' to 'type2', signed/unsigned mismatch
716
#pragma warning(disable: 4284) // return type for 'identifier::operator ->' is not a UDT or reference
717
// to a UDT. Will produce errors if applied using infix notation
718
#pragma warning(disable: 4511) // 'class' : copy constructor could not be generated
719
#pragma warning(disable: 4512) // 'class' : assignment operator could not be generated
720
#pragma warning(disable: 4663) // C++ language change: to explicitly specialize class template 'vector'
721
#pragma warning(disable: 4702) // unreachable code
722
#pragma warning(disable: 4710) // 'function' : function not inlined
723
#pragma warning(disable: 4786) // identifier was truncated to 'number' characters in the debug information
724
// MSVC8 /analyze warnings
725
#if _MSC_VER > 1310
726
#pragma warning( disable : 6011 )
727
#pragma warning( disable : 6219 )
728
#pragma warning( disable : 6221 )
729
#pragma warning( disable : 6255 )
730
#pragma warning( disable : 6308 )
731
#pragma warning( disable : 6320 )
732
#pragma warning( disable : 6321 )
733
#pragma warning( disable : 6387 )
734
#endif // /analyze
735
#endif
736
737
#include <utility>
738
739
#ifdef _MSC_VER
740
#pragma warning(pop)
741
#endif // _MSC_VER
742
743
#endif // STL_USING_FUNCTIONAL
744
745
#ifdef STL_USING_SET
746
747
#ifdef _MSC_VER
748
#pragma warning(push)
749
#endif // _MSC_VER
750
751
#ifdef _MSC_VER
752
#include <yvals.h>
// warning numbers get enabled in yvals.h
753
#endif
754
755
#ifdef _MSC_VER
756
#pragma warning(disable: 4018) // signed/unsigned mismatch
757
#pragma warning(disable: 4097) // typedef-name 'identifier1' used as synonym for class-name 'identifier2'
758
#pragma warning(disable: 4100) // unreferenced formal parameter
759
#pragma warning(disable: 4127) // conditional expression is constant
760
#pragma warning(disable: 4146) // unary minus operator applied to unsigned type, result still unsigned
761
#pragma warning(disable: 4244) // 'conversion' conversion from 'type1' to 'type2', possible loss of data
762
#pragma warning(disable: 4245) // conversion from 'type1' to 'type2', signed/unsigned mismatch
763
#pragma warning(disable: 4284) // return type for 'identifier::operator ->' is not a UDT or reference
764
// to a UDT. Will produce errors if applied using infix notation
765
#pragma warning(disable: 4511) // 'class' : copy constructor could not be generated
766
#pragma warning(disable: 4512) // 'class' : assignment operator could not be generated
767
#pragma warning(disable: 4702) // unreachable code
768
#pragma warning(disable: 4710) // 'function' : function not inlined
769
#pragma warning(disable: 4786) // identifier was truncated to 'number' characters in the debug information
770
// MSVC8 /analyze warnings
771
#if _MSC_VER > 1310
772
#pragma warning( disable : 6011 )
773
#pragma warning( disable : 6219 )
774
#pragma warning( disable : 6221 )
775
#pragma warning( disable : 6255 )
776
#pragma warning( disable : 6308 )
777
#pragma warning( disable : 6320 )
778
#pragma warning( disable : 6321 )
779
#pragma warning( disable : 6387 )
780
#endif // /analyze
781
#endif
782
783
#include <set>
784
785
#ifdef _MSC_VER
786
#pragma warning(pop)
787
#endif // _MSC_VER
788
789
#endif // STL_USING_SET
790
791
#ifdef STL_USING_LIMITS
792
793
#ifdef _MSC_VER
794
#pragma warning(push)
795
#include <yvals.h>
// warning numbers get enabled in yvals.h
796
#pragma warning(disable: 4663) // C++ language change: to explicitly specialize class template ...
797
798
#undef min // in windows header min & max are defined
799
#undef max
800
801
#endif // _MSC_VER
802
803
#include <limits>
804
805
#ifdef _MSC_VER
806
#pragma warning(pop)
807
#endif // _MSC_VER
808
809
#endif // STL_USING_LIMITS
810
811
813
// verify proper use of macros
815
816
#if defined(STL_USING_MAP) || defined(STL_USING_VECTOR) || defined(STL_USING_LIST) || \
817
defined(STL_USING_STRING) || defined(STL_USING_STREAM) || defined STL_USING_FUNCTIONAL || \
818
defined(STL_USING_MEMORY) || defined(STL_USING_STACK) || defined STL_USING_ALGORITHM || \
819
defined(STL_USING_UTILITY) || defined(STL_USING_IOSTREAM) || defined(STL_USING_SET) || \
820
defined(STL_USING_LIMITS)
821
822
#define _ODA_STL_
823
824
#else
825
#pragma message( "Warning: You included \"OdaSTL.H\" without using any STL features!" )
826
827
#endif
828
829
//#endif // _ODA_STLHELPER_INCLUDED_
830
Generated on Mon Oct 12 2020 11:49:43