CFx SDK Documentation  2023 SP0
FMSTLHelper.h
Go to the documentation of this file.
1 // Copyright (C) 2002-2015, 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-2015 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 #ifndef __FMSTLHELPER_H__
25 #define __FMSTLHELPER_H__
26 
27 
28 // Vector section.
29 
30 #ifdef _MSC_VER
31 
32 #include <yvals.h> // warning numbers get enabled in yvals.h; we must include it
33  // before disabling any warnings, because if we do not include
34  // it here, it will be included from within STL files and the
35  // warnings will be reset back to default states.
36 
37 #pragma warning( push )
38 #pragma warning(disable: 4018) // signed/unsigned mismatch
39 #pragma warning(disable: 4100) // unreferenced formal parameter
40 #pragma warning(disable: 4245) // conversion from 'type1' to 'type2',
41  // signed/unsigned mismatch
42 #pragma warning(disable: 4663) // C++ language change: to explicitly specialize
43  // class template 'vector'
44 #pragma warning(disable: 4702) // unreachable code
45 #pragma warning(disable: 4710) // 'function' : function not inlined
46 #pragma warning(disable: 4786) // identifier was truncated to 'number' characters
47  // in the debug information
48 
49 #endif // _MSC_VER
50 
51 #include <vector>
52 
53 
54 // Map section.
55 
56 #ifdef _MSC_VER
57 #pragma warning(disable: 4018) // signed/unsigned mismatch
58 #pragma warning(disable: 4100) // unreferenced formal parameter
59 #pragma warning(disable: 4245) // conversion from 'type1' to 'type2',
60  // signed/unsigned mismatch
61 #pragma warning(disable: 4284) // iterator::operator-> not a UDT or reference to UDT.
62 #pragma warning(disable: 4512) // 'class' : assignment operator could not be generated
63 #pragma warning(disable: 4663) // C++ language change: to explicitly specialize
64  // class template 'vector'
65 #pragma warning(disable: 4710) // 'function' : function not inlined
66 #pragma warning(disable: 4786) // identifier was truncated to 'number' characters in
67  // the debug information
68 
69 // BUG: C4786 Warning Is Not Disabled with #pragma Warning
70 // STATUS: Microsoft has confirmed this to be a bug in the Microsoft product.
71 // This warning can be ignored. This occured only in the <map> container.
72 
73 #endif // _MSC_VER
74 
75 #include <map>
76 
77 
78 // List section.
79 
80 #ifdef _MSC_VER
81 
82 #pragma warning(disable: 4100) // unreferenced formal parameter
83 #pragma warning(disable: 4284) // return type for 'identifier::operator ->'
84  // is not a UDT or reference
85  // to a UDT. Will produce errors if applied using
86  // infix notation
87 #pragma warning(disable: 4710) // 'function' : function not inlined
88 #pragma warning(disable: 4786) // identifier was truncated to 'number' characters
89  // in the debug information
90 #endif // _MSC_VER
91 
92 #include <list>
93 
94 // Stack section.
95 
96 #ifdef _MSC_VER
97 
98 #pragma warning(disable: 4018) // signed/unsigned mismatch
99 #pragma warning(disable: 4100) // unreferenced formal parameter
100 #pragma warning(disable: 4245) // conversion from 'type1' to 'type2',
101  // signed/unsigned mismatch
102 #pragma warning(disable: 4710) // 'function' : function not inlined
103 #pragma warning(disable: 4786) // identifier was truncated to 'number'
104  // characters in the debug information
105 #pragma warning(disable: 4146) // unary minus operator applied to unsigned type ( <deque> )
106 #endif // _MSC_VER
107 
108 #include <stack>
109 
110 
111 // Algorithm section.
112 
113 #include <algorithm>
114 
115 // Functional section.
116 
117 #include <functional>
118 
119 // Set section.
120 
121 #include <set>
122 
123 
124 #ifdef _MSC_VER
125 
126 #pragma warning( pop )
127 
128 #if _MSC_VER <= 1300
129 #pragma warning(disable: 4097) // typedef-name ... used as synonym for class-name
130 #endif
131 
132 #endif // _MSC_VER
133 
134 #endif //__FMSTLHELPER_H__