/////////////////////////////////////////////////////////////////////////////// // Copyright (C) 2002-2016, Open Design Alliance (the "Alliance"). // All rights reserved. // // This software and its documentation and related materials are owned by // the Alliance. The software may only be incorporated into application // programs owned by members of the Alliance, subject to a signed // Membership Agreement and Supplemental Software License Agreement with the // Alliance. The structure and organization of this software are the valuable // trade secrets of the Alliance and its suppliers. The software is also // protected by copyright law and international treaty provisions. Application // programs incorporating this software must include the following statement // with their copyright notices: // // This application incorporates Teigha(R) software pursuant to a license // agreement with Open Design Alliance. // Teigha(R) Copyright (C) 2002-2016 by Open Design Alliance. // All rights reserved. // // By use of this software, its documentation or related materials, you // acknowledge and accept the above terms. /////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// // Purpose: Declarations for using STL without warning noise. // // Usage: Include this file and define at least one of the STL_USING_xxx // macros. Currently supported data types from the STL: // // // defines for using the STL // #define STL_USING_ALL // #define STL_USING_MAP // #define STL_USING_VECTOR // #define STL_USING_LIST // #define STL_USING_STRING // #define STL_USING_STREAM // #define STL_USING_IOSTREAM // #define STL_USING_MEMORY // #define STL_USING_STACK // #define STL_USING_ALGORITHM // #define STL_USING_FUNCTIONAL // #define STL_USING_UTILITY // #define STL_USING_SET // #define STL_USING_LIMITS // // Sample: // #define STL_USING_ALL // #include "OdaSTL.h" // // this file based on Oskar Wieland (oskar.wieland@gmx.de) STL.H ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// // include guards ////////////////////////////////////////////////////////////////////// // !!! Do not prevent the multiple include for this file //#ifndef _ODA_STLHELPER_INCLUDED_ //#define _ODA_STLHELPER_INCLUDED_ ////////////////////////////////////////////////////////////////////// // handy define to include all stuff ////////////////////////////////////////////////////////////////////// #ifdef STL_USING_ALL #define STL_USING_MAP #define STL_USING_VECTOR #define STL_USING_LIST #define STL_USING_STRING #define STL_USING_STREAM #define STL_USING_IOSTREAM #define STL_USING_MEMORY #define STL_USING_STACK #define STL_USING_ALGORITHM #define STL_USING_FUNCTIONAL #define STL_USING_UTILITY #define STL_USING_SET #define STL_USING_LIMITS #endif ////////////////////////////////////////////////////////////////////// // STL neccessary declaration for map ////////////////////////////////////////////////////////////////////// #ifdef STL_USING_MAP #ifdef _MSC_VER #pragma warning(push) #endif // _MSC_VER #ifdef _MSC_VER #include // warning numbers get enabled in yvals.h #endif #ifdef _MSC_VER #pragma warning(disable: 4018) // signed/unsigned mismatch #pragma warning(disable: 4097) // typedef-name 'identifier1' used as synonym for class-name 'identifier2' #pragma warning(disable: 4100) // unreferenced formal parameter #pragma warning(disable: 4127) // conditional expression is constant #pragma warning(disable: 4146) // unary minus operator applied to unsigned type, result still unsigned #pragma warning(disable: 4244) // 'conversion' conversion from 'type1' to 'type2', possible loss of data #pragma warning(disable: 4245) // conversion from 'type1' to 'type2', signed/unsigned mismatch #pragma warning(disable: 4284) // return type for 'identifier::operator ->' is not a UDT or reference // to a UDT. Will produce errors if applied using infix notation #pragma warning(disable: 4511) // 'class' : copy constructor could not be generated #pragma warning(disable: 4512) // 'class' : assignment operator could not be generated #pragma warning(disable: 4663) // C++ language change: to explicitly specialize class template 'vector' #pragma warning(disable: 4702) // unreachable code #pragma warning(disable: 4710) // 'function' : function not inlined #pragma warning(disable: 4786) // identifier was truncated to 'number' characters in the debug information // BUG: C4786 Warning Is Not Disabled with #pragma Warning // STATUS: Microsoft has confirmed this to be a bug in the Microsoft product. // This warning can be ignored. This occured only in the container. // MSVC8 /analyze warnings #if _MSC_VER > 1310 #pragma warning( disable : 6011 ) #pragma warning( disable : 6219 ) #pragma warning( disable : 6221 ) #pragma warning( disable : 6255 ) #pragma warning( disable : 6308 ) #pragma warning( disable : 6320 ) #pragma warning( disable : 6321 ) #pragma warning( disable : 6387 ) #endif // /analyze #endif // _MSC_VER #include #ifdef _MSC_VER #pragma warning(pop) #endif // _MSC_VER #endif //STL_USING_MAP ////////////////////////////////////////////////////////////////////// // STL neccessary declaration for vector ////////////////////////////////////////////////////////////////////// #ifdef STL_USING_VECTOR #ifdef _MSC_VER #pragma warning(push) #endif // _MSC_VER #ifdef _MSC_VER #include // warning numbers get enabled in yvals.h #endif #ifdef _MSC_VER #pragma warning(disable: 4018) // signed/unsigned mismatch #pragma warning(disable: 4097) // typedef-name 'identifier1' used as synonym for class-name 'identifier2' #pragma warning(disable: 4100) // unreferenced formal parameter #pragma warning(disable: 4127) // conditional expression is constant #pragma warning(disable: 4146) // unary minus operator applied to unsigned type, result still unsigned #pragma warning(disable: 4244) // 'conversion' conversion from 'type1' to 'type2', possible loss of data #pragma warning(disable: 4245) // conversion from 'type1' to 'type2', signed/unsigned mismatch #pragma warning(disable: 4284) // return type for 'identifier::operator ->' is not a UDT or reference // to a UDT. Will produce errors if applied using infix notation #pragma warning(disable: 4511) // 'class' : copy constructor could not be generated #pragma warning(disable: 4512) // 'class' : assignment operator could not be generated #pragma warning(disable: 4663) // C++ language change: to explicitly specialize class template 'vector' #pragma warning(disable: 4702) // unreachable code #pragma warning(disable: 4710) // 'function' : function not inlined #pragma warning(disable: 4786) // identifier was truncated to 'number' characters in the debug information // MSVC8 /analyze warnings #if _MSC_VER > 1310 #pragma warning( disable : 6011 ) #pragma warning( disable : 6219 ) #pragma warning( disable : 6221 ) #pragma warning( disable : 6255 ) #pragma warning( disable : 6308 ) #pragma warning( disable : 6320 ) #pragma warning( disable : 6321 ) #pragma warning( disable : 6387 ) #endif // /analyze #endif #include #ifdef _MSC_VER #pragma warning(pop) #endif // _MSC_VER #endif // STL_USING_VECTOR ////////////////////////////////////////////////////////////////////// // STL neccessary declaration for list ////////////////////////////////////////////////////////////////////// #ifdef STL_USING_LIST #ifdef _MSC_VER #pragma warning(push) #endif // _MSC_VER #ifdef _MSC_VER #include // warning numbers get enabled in yvals.h #endif #ifdef _MSC_VER #pragma warning(disable: 4018) // signed/unsigned mismatch #pragma warning(disable: 4097) // typedef-name 'identifier1' used as synonym for class-name 'identifier2' #pragma warning(disable: 4100) // unreferenced formal parameter #pragma warning(disable: 4127) // conditional expression is constant #pragma warning(disable: 4146) // unary minus operator applied to unsigned type, result still unsigned #pragma warning(disable: 4244) // 'conversion' conversion from 'type1' to 'type2', possible loss of data #pragma warning(disable: 4245) // conversion from 'type1' to 'type2', signed/unsigned mismatch #pragma warning(disable: 4284) // return type for 'identifier::operator ->' is not a UDT or reference // to a UDT. Will produce errors if applied using infix notation #pragma warning(disable: 4511) // 'class' : copy constructor could not be generated #pragma warning(disable: 4512) // 'class' : assignment operator could not be generated #pragma warning(disable: 4663) // C++ language change: to explicitly specialize class template 'vector' #pragma warning(disable: 4702) // unreachable code #pragma warning(disable: 4710) // 'function' : function not inlined #pragma warning(disable: 4786) // identifier was truncated to 'number' characters in the debug information // MSVC8 /analyze warnings #if _MSC_VER > 1310 #pragma warning( disable : 6011 ) #pragma warning( disable : 6219 ) #pragma warning( disable : 6221 ) #pragma warning( disable : 6255 ) #pragma warning( disable : 6308 ) #pragma warning( disable : 6320 ) #pragma warning( disable : 6321 ) #pragma warning( disable : 6387 ) #endif // /analyze #endif #include #ifdef _MSC_VER #pragma warning(pop) #endif // _MSC_VER #endif // STL_USING_LIST ////////////////////////////////////////////////////////////////////// // STL neccessary declaration for string ////////////////////////////////////////////////////////////////////// #ifdef STL_USING_STRING #ifdef _MSC_VER #pragma warning(push) #endif // _MSC_VER #ifdef _MSC_VER #include // warning numbers get enabled in yvals.h #endif #ifdef _MSC_VER #pragma warning(disable: 4018) // signed/unsigned mismatch #pragma warning(disable: 4097) // typedef-name 'identifier1' used as synonym for class-name 'identifier2' #pragma warning(disable: 4100) // unreferenced formal parameter #pragma warning(disable: 4127) // conditional expression is constant #pragma warning(disable: 4146) // unary minus operator applied to unsigned type, result still unsigned #pragma warning(disable: 4244) // 'conversion' conversion from 'type1' to 'type2', possible loss of data #pragma warning(disable: 4245) // conversion from 'type1' to 'type2', signed/unsigned mismatch #pragma warning(disable: 4284) // return type for 'identifier::operator ->' is not a UDT or reference // to a UDT. Will produce errors if applied using infix notation #pragma warning(disable: 4511) // 'class' : copy constructor could not be generated #pragma warning(disable: 4512) // 'class' : assignment operator could not be generated #pragma warning(disable: 4663) // C++ language change: to explicitly specialize class template 'vector' #pragma warning(disable: 4702) // unreachable code #pragma warning(disable: 4710) // 'function' : function not inlined #pragma warning(disable: 4786) // identifier was truncated to 'number' characters in the debug information // MSVC8 /analyze warnings #if _MSC_VER > 1310 #pragma warning( disable : 6011 ) #pragma warning( disable : 6219 ) #pragma warning( disable : 6221 ) #pragma warning( disable : 6255 ) #pragma warning( disable : 6308 ) #pragma warning( disable : 6320 ) #pragma warning( disable : 6321 ) #pragma warning( disable : 6387 ) #endif // /analyze #endif #include #ifdef _MSC_VER #pragma warning(pop) #endif // _MSC_VER #ifdef _MSC_VER #pragma warning(disable: 4514) // unreferenced inline/local function has been removed #pragma warning(disable: 4710) // 'function' : function not inlined #pragma warning(disable: 4786) // identifier was truncated to 'number' characters // in the debug information #endif #endif // STL_USING_STRING ////////////////////////////////////////////////////////////////////// // STL neccessary declaration for streams ////////////////////////////////////////////////////////////////////// #ifdef STL_USING_STREAM #ifdef _MSC_VER #pragma warning(push) #endif // _MSC_VER #ifdef _MSC_VER #include // warning numbers get enabled in yvals.h #endif #ifdef _MSC_VER #pragma warning(disable: 4018) // signed/unsigned mismatch #pragma warning(disable: 4097) // typedef-name 'identifier1' used as synonym for class-name 'identifier2' #pragma warning(disable: 4100) // unreferenced formal parameter #pragma warning(disable: 4127) // conditional expression is constant #pragma warning(disable: 4146) // unary minus operator applied to unsigned type, result still unsigned #pragma warning(disable: 4244) // 'conversion' conversion from 'type1' to 'type2', possible loss of data #pragma warning(disable: 4245) // conversion from 'type1' to 'type2', signed/unsigned mismatch #pragma warning(disable: 4284) // return type for 'identifier::operator ->' is not a UDT or reference // to a UDT. Will produce errors if applied using infix notation #pragma warning(disable: 4511) // 'class' : copy constructor could not be generated #pragma warning(disable: 4512) // 'class' : assignment operator could not be generated #pragma warning(disable: 4663) // C++ language change: to explicitly specialize class template 'vector' #pragma warning(disable: 4702) // unreachable code #pragma warning(disable: 4710) // 'function' : function not inlined #pragma warning(disable: 4786) // identifier was truncated to 'number' characters in the debug information // MSVC8 /analyze warnings #if _MSC_VER > 1310 #pragma warning( disable : 6011 ) #pragma warning( disable : 6219 ) #pragma warning( disable : 6221 ) #pragma warning( disable : 6255 ) #pragma warning( disable : 6308 ) #pragma warning( disable : 6320 ) #pragma warning( disable : 6321 ) #pragma warning( disable : 6387 ) #endif // /analyze #endif #ifdef OD_HAVE_SSTREAM_FILE #include #endif #ifdef OD_HAVE_FSTREAM_FILE #include #endif #ifdef _MSC_VER #pragma warning(pop) #endif // _MSC_VER #endif //STL_USING_STREAM ////////////////////////////////////////////////////////////////////// // STL neccessary declaration for input/output streams ////////////////////////////////////////////////////////////////////// #ifdef STL_USING_IOSTREAM #ifdef _MSC_VER #pragma warning(push) #endif // _MSC_VER #ifdef _MSC_VER #include // warning numbers get enabled in yvals.h #endif #ifdef _MSC_VER #pragma warning(disable: 4018) // signed/unsigned mismatch #pragma warning(disable: 4097) // typedef-name 'identifier1' used as synonym for class-name 'identifier2' #pragma warning(disable: 4100) // unreferenced formal parameter #pragma warning(disable: 4127) // conditional expression is constant #pragma warning(disable: 4146) // unary minus operator applied to unsigned type, result still unsigned #pragma warning(disable: 4244) // 'conversion' conversion from 'type1' to 'type2', possible loss of data #pragma warning(disable: 4245) // conversion from 'type1' to 'type2', signed/unsigned mismatch #pragma warning(disable: 4284) // return type for 'identifier::operator ->' is not a UDT or reference // to a UDT. Will produce errors if applied using infix notation #pragma warning(disable: 4511) // 'class' : copy constructor could not be generated #pragma warning(disable: 4512) // 'class' : assignment operator could not be generated #pragma warning(disable: 4663) // C++ language change: to explicitly specialize class template 'vector' #pragma warning(disable: 4702) // unreachable code #pragma warning(disable: 4710) // 'function' : function not inlined #pragma warning(disable: 4786) // identifier was truncated to 'number' characters in the debug information // MSVC8 /analyze warnings #if _MSC_VER > 1310 #pragma warning( disable : 6011 ) #pragma warning( disable : 6219 ) #pragma warning( disable : 6221 ) #pragma warning( disable : 6255 ) #pragma warning( disable : 6308 ) #pragma warning( disable : 6320 ) #pragma warning( disable : 6321 ) #pragma warning( disable : 6387 ) #endif // /analyze #endif #include #ifdef OD_HAVE_IOMANIP_FILE #include #endif #ifdef _MSC_VER #pragma warning(pop) #endif // _MSC_VER #endif //STL_USING_IOSTREAM ////////////////////////////////////////////////////////////////////// // STL neccessary declaration for memory ////////////////////////////////////////////////////////////////////// #ifdef STL_USING_MEMORY // The STL library provides a type called auto_ptr for managing pointers. // This template class acts as a stack variable for dynamically allocated // memory. When the variable goes out of scope, its destructor gets called. // In its destructor, it calls delete on the contained pointer, making sure // that the memory is returned to the heap. #ifdef _MSC_VER #pragma warning(push) #endif // _MSC_VER #ifdef _MSC_VER #include // warning numbers get enabled in yvals.h #endif #ifdef _MSC_VER #pragma warning(disable: 4018) // signed/unsigned mismatch #pragma warning(disable: 4097) // typedef-name 'identifier1' used as synonym for class-name 'identifier2' #pragma warning(disable: 4100) // unreferenced formal parameter #pragma warning(disable: 4127) // conditional expression is constant #pragma warning(disable: 4146) // unary minus operator applied to unsigned type, result still unsigned #pragma warning(disable: 4244) // 'conversion' conversion from 'type1' to 'type2', possible loss of data #pragma warning(disable: 4245) // conversion from 'type1' to 'type2', signed/unsigned mismatch #pragma warning(disable: 4284) // return type for 'identifier::operator ->' is not a UDT or reference // to a UDT. Will produce errors if applied using infix notation #pragma warning(disable: 4511) // 'class' : copy constructor could not be generated #pragma warning(disable: 4512) // 'class' : assignment operator could not be generated #pragma warning(disable: 4663) // C++ language change: to explicitly specialize class template 'vector' #pragma warning(disable: 4702) // unreachable code #pragma warning(disable: 4710) // 'function' : function not inlined #pragma warning(disable: 4786) // identifier was truncated to 'number' characters in the debug information // MSVC8 /analyze warnings #if _MSC_VER > 1310 #pragma warning( disable : 6011 ) #pragma warning( disable : 6219 ) #pragma warning( disable : 6221 ) #pragma warning( disable : 6255 ) #pragma warning( disable : 6308 ) #pragma warning( disable : 6320 ) #pragma warning( disable : 6321 ) #pragma warning( disable : 6387 ) #endif // /analyze #endif #include #ifdef _MSC_VER #pragma warning(pop) #endif // _MSC_VER #endif //STL_USING_MEMORY ////////////////////////////////////////////////////////////////////// // STL neccessary declaration for stack ////////////////////////////////////////////////////////////////////// #ifdef STL_USING_STACK #ifdef _MSC_VER #pragma warning(push) #endif // _MSC_VER #ifdef _MSC_VER #include // warning numbers get enabled in yvals.h #endif #ifdef _MSC_VER #pragma warning(disable: 4018) // signed/unsigned mismatch #pragma warning(disable: 4097) // typedef-name 'identifier1' used as synonym for class-name 'identifier2' #pragma warning(disable: 4100) // unreferenced formal parameter #pragma warning(disable: 4127) // conditional expression is constant #pragma warning(disable: 4146) // unary minus operator applied to unsigned type, result still unsigned #pragma warning(disable: 4244) // 'conversion' conversion from 'type1' to 'type2', possible loss of data #pragma warning(disable: 4245) // conversion from 'type1' to 'type2', signed/unsigned mismatch #pragma warning(disable: 4284) // return type for 'identifier::operator ->' is not a UDT or reference // to a UDT. Will produce errors if applied using infix notation #pragma warning(disable: 4511) // 'class' : copy constructor could not be generated #pragma warning(disable: 4512) // 'class' : assignment operator could not be generated #pragma warning(disable: 4663) // C++ language change: to explicitly specialize class template 'vector' #pragma warning(disable: 4702) // unreachable code #pragma warning(disable: 4710) // 'function' : function not inlined #pragma warning(disable: 4786) // identifier was truncated to 'number' characters in the debug information // MSVC8 /analyze warnings #if _MSC_VER > 1310 #pragma warning( disable : 6011 ) #pragma warning( disable : 6219 ) #pragma warning( disable : 6221 ) #pragma warning( disable : 6255 ) #pragma warning( disable : 6308 ) #pragma warning( disable : 6320 ) #pragma warning( disable : 6321 ) #pragma warning( disable : 6387 ) #endif // /analyze #endif #include #ifdef _MSC_VER #pragma warning(pop) #endif // _MSC_VER #endif // STL_USING_STACK #ifdef STL_USING_QUEUE #ifdef _MSC_VER #pragma warning(push) #endif // _MSC_VER #ifdef _MSC_VER #include // warning numbers get enabled in yvals.h #endif #ifdef _MSC_VER #pragma warning(disable: 4018) // signed/unsigned mismatch #pragma warning(disable: 4097) // typedef-name 'identifier1' used as synonym for class-name 'identifier2' #pragma warning(disable: 4100) // unreferenced formal parameter #pragma warning(disable: 4127) // conditional expression is constant #pragma warning(disable: 4146) // unary minus operator applied to unsigned type, result still unsigned #pragma warning(disable: 4244) // 'conversion' conversion from 'type1' to 'type2', possible loss of data #pragma warning(disable: 4245) // conversion from 'type1' to 'type2', signed/unsigned mismatch #pragma warning(disable: 4284) // return type for 'identifier::operator ->' is not a UDT or reference // to a UDT. Will produce errors if applied using infix notation #pragma warning(disable: 4511) // 'class' : copy constructor could not be generated #pragma warning(disable: 4512) // 'class' : assignment operator could not be generated #pragma warning(disable: 4663) // C++ language change: to explicitly specialize class template 'vector' #pragma warning(disable: 4702) // unreachable code #pragma warning(disable: 4710) // 'function' : function not inlined #pragma warning(disable: 4786) // identifier was truncated to 'number' characters in the debug information // MSVC8 /analyze warnings #if _MSC_VER > 1310 #pragma warning( disable : 6011 ) #pragma warning( disable : 6219 ) #pragma warning( disable : 6221 ) #pragma warning( disable : 6255 ) #pragma warning( disable : 6308 ) #pragma warning( disable : 6320 ) #pragma warning( disable : 6321 ) #pragma warning( disable : 6387 ) #endif // /analyze #endif #include #ifdef _MSC_VER #pragma warning(pop) #endif // _MSC_VER #endif // STL_USING_STACK ////////////////////////////////////////////////////////////////////// // STL neccessary declaration for algorithm ////////////////////////////////////////////////////////////////////// #ifdef STL_USING_ALGORITHM #ifdef _MSC_VER #pragma warning(push) #endif // _MSC_VER #ifdef _MSC_VER #include // warning numbers get enabled in yvals.h #endif #ifdef _MSC_VER #pragma warning(disable: 4018) // signed/unsigned mismatch #pragma warning(disable: 4097) // typedef-name 'identifier1' used as synonym for class-name 'identifier2' #pragma warning(disable: 4100) // unreferenced formal parameter #pragma warning(disable: 4127) // conditional expression is constant #pragma warning(disable: 4146) // unary minus operator applied to unsigned type, result still unsigned #pragma warning(disable: 4244) // 'conversion' conversion from 'type1' to 'type2', possible loss of data #pragma warning(disable: 4245) // conversion from 'type1' to 'type2', signed/unsigned mismatch #pragma warning(disable: 4284) // return type for 'identifier::operator ->' is not a UDT or reference // to a UDT. Will produce errors if applied using infix notation #pragma warning(disable: 4511) // 'class' : copy constructor could not be generated #pragma warning(disable: 4512) // 'class' : assignment operator could not be generated #pragma warning(disable: 4663) // C++ language change: to explicitly specialize class template 'vector' #pragma warning(disable: 4702) // unreachable code #pragma warning(disable: 4710) // 'function' : function not inlined #pragma warning(disable: 4786) // identifier was truncated to 'number' characters in the debug information // MSVC8 /analyze warnings #if _MSC_VER > 1310 #pragma warning( disable : 6011 ) #pragma warning( disable : 6219 ) #pragma warning( disable : 6221 ) #pragma warning( disable : 6255 ) #pragma warning( disable : 6308 ) #pragma warning( disable : 6320 ) #pragma warning( disable : 6321 ) #pragma warning( disable : 6387 ) #endif // /analyze #endif #include #include // in STLPORT used with BCC 5.6 std::remove clashes with remove(char*) from iostream #ifdef __SGI_STL_PORT /** \details */ /*!DOM*/ namespace std { using _STLP_STD::remove; } #endif #ifdef _MSC_VER #pragma warning(pop) #endif // _MSC_VER #endif // STL_USING_ALGORITHM ////////////////////////////////////////////////////////////////////// // STL neccessary declaration for functional ////////////////////////////////////////////////////////////////////// #ifdef STL_USING_FUNCTIONAL #ifdef _MSC_VER #pragma warning(push) #endif // _MSC_VER #ifdef _MSC_VER #include // warning numbers get enabled in yvals.h #endif #ifdef _MSC_VER #pragma warning(disable: 4018) // signed/unsigned mismatch #pragma warning(disable: 4097) // typedef-name 'identifier1' used as synonym for class-name 'identifier2' #pragma warning(disable: 4100) // unreferenced formal parameter #pragma warning(disable: 4127) // conditional expression is constant #pragma warning(disable: 4146) // unary minus operator applied to unsigned type, result still unsigned #pragma warning(disable: 4244) // 'conversion' conversion from 'type1' to 'type2', possible loss of data #pragma warning(disable: 4245) // conversion from 'type1' to 'type2', signed/unsigned mismatch #pragma warning(disable: 4284) // return type for 'identifier::operator ->' is not a UDT or reference // to a UDT. Will produce errors if applied using infix notation #pragma warning(disable: 4511) // 'class' : copy constructor could not be generated #pragma warning(disable: 4512) // 'class' : assignment operator could not be generated #pragma warning(disable: 4663) // C++ language change: to explicitly specialize class template 'vector' #pragma warning(disable: 4702) // unreachable code #pragma warning(disable: 4710) // 'function' : function not inlined #pragma warning(disable: 4786) // identifier was truncated to 'number' characters in the debug information // MSVC8 /analyze warnings #if _MSC_VER > 1310 #pragma warning( disable : 6011 ) #pragma warning( disable : 6219 ) #pragma warning( disable : 6221 ) #pragma warning( disable : 6255 ) #pragma warning( disable : 6308 ) #pragma warning( disable : 6320 ) #pragma warning( disable : 6321 ) #pragma warning( disable : 6387 ) #endif // /analyze #endif #include #ifdef _MSC_VER #pragma warning(pop) #endif // _MSC_VER #endif // STL_USING_FUNCTIONAL ////////////////////////////////////////////////////////////////////// // STL neccessary declaration for utilities ////////////////////////////////////////////////////////////////////// #ifdef STL_USING_UTILITY #ifdef _MSC_VER #pragma warning(push) #endif // _MSC_VER #ifdef _MSC_VER #include // warning numbers get enabled in yvals.h #endif #ifdef _MSC_VER #pragma warning(disable: 4018) // signed/unsigned mismatch #pragma warning(disable: 4097) // typedef-name 'identifier1' used as synonym for class-name 'identifier2' #pragma warning(disable: 4100) // unreferenced formal parameter #pragma warning(disable: 4127) // conditional expression is constant #pragma warning(disable: 4146) // unary minus operator applied to unsigned type, result still unsigned #pragma warning(disable: 4244) // 'conversion' conversion from 'type1' to 'type2', possible loss of data #pragma warning(disable: 4245) // conversion from 'type1' to 'type2', signed/unsigned mismatch #pragma warning(disable: 4284) // return type for 'identifier::operator ->' is not a UDT or reference // to a UDT. Will produce errors if applied using infix notation #pragma warning(disable: 4511) // 'class' : copy constructor could not be generated #pragma warning(disable: 4512) // 'class' : assignment operator could not be generated #pragma warning(disable: 4663) // C++ language change: to explicitly specialize class template 'vector' #pragma warning(disable: 4702) // unreachable code #pragma warning(disable: 4710) // 'function' : function not inlined #pragma warning(disable: 4786) // identifier was truncated to 'number' characters in the debug information // MSVC8 /analyze warnings #if _MSC_VER > 1310 #pragma warning( disable : 6011 ) #pragma warning( disable : 6219 ) #pragma warning( disable : 6221 ) #pragma warning( disable : 6255 ) #pragma warning( disable : 6308 ) #pragma warning( disable : 6320 ) #pragma warning( disable : 6321 ) #pragma warning( disable : 6387 ) #endif // /analyze #endif #include #ifdef _MSC_VER #pragma warning(pop) #endif // _MSC_VER #endif // STL_USING_FUNCTIONAL #ifdef STL_USING_SET #ifdef _MSC_VER #pragma warning(push) #endif // _MSC_VER #ifdef _MSC_VER #include // warning numbers get enabled in yvals.h #endif #ifdef _MSC_VER #pragma warning(disable: 4018) // signed/unsigned mismatch #pragma warning(disable: 4097) // typedef-name 'identifier1' used as synonym for class-name 'identifier2' #pragma warning(disable: 4100) // unreferenced formal parameter #pragma warning(disable: 4127) // conditional expression is constant #pragma warning(disable: 4146) // unary minus operator applied to unsigned type, result still unsigned #pragma warning(disable: 4244) // 'conversion' conversion from 'type1' to 'type2', possible loss of data #pragma warning(disable: 4245) // conversion from 'type1' to 'type2', signed/unsigned mismatch #pragma warning(disable: 4284) // return type for 'identifier::operator ->' is not a UDT or reference // to a UDT. Will produce errors if applied using infix notation #pragma warning(disable: 4511) // 'class' : copy constructor could not be generated #pragma warning(disable: 4512) // 'class' : assignment operator could not be generated #pragma warning(disable: 4702) // unreachable code #pragma warning(disable: 4710) // 'function' : function not inlined #pragma warning(disable: 4786) // identifier was truncated to 'number' characters in the debug information // MSVC8 /analyze warnings #if _MSC_VER > 1310 #pragma warning( disable : 6011 ) #pragma warning( disable : 6219 ) #pragma warning( disable : 6221 ) #pragma warning( disable : 6255 ) #pragma warning( disable : 6308 ) #pragma warning( disable : 6320 ) #pragma warning( disable : 6321 ) #pragma warning( disable : 6387 ) #endif // /analyze #endif #include #ifdef _MSC_VER #pragma warning(pop) #endif // _MSC_VER #endif // STL_USING_SET #ifdef STL_USING_LIMITS #ifdef _MSC_VER #pragma warning(push) #include // warning numbers get enabled in yvals.h #pragma warning(disable: 4663) // C++ language change: to explicitly specialize class template ... #undef min // in windows header min & max are defined #undef max #endif // _MSC_VER #include #ifdef _MSC_VER #pragma warning(pop) #endif // _MSC_VER #endif // STL_USING_LIMITS ////////////////////////////////////////////////////////////////////// // verify proper use of macros ////////////////////////////////////////////////////////////////////// #if defined(STL_USING_MAP) || defined(STL_USING_VECTOR) || defined(STL_USING_LIST) || \ defined(STL_USING_STRING) || defined(STL_USING_STREAM) || defined STL_USING_FUNCTIONAL || \ defined(STL_USING_MEMORY) || defined(STL_USING_STACK) || defined STL_USING_ALGORITHM || \ defined(STL_USING_UTILITY) || defined(STL_USING_IOSTREAM) || defined(STL_USING_SET) || \ defined(STL_USING_LIMITS) #define _ODA_STL_ #else #pragma message( "Warning: You included \"OdaSTL.H\" without using any STL features!" ) #endif //#endif // _ODA_STLHELPER_INCLUDED_