// DisableSTLWarnings.h
// (NOT TO BE CONFUSED WITH DisableSTLUsageWarnings.h)
//
// INCLUDE THIS FILE to disable annoying warnings often generated when
// *including* Visual Studio's STL headers.
//
// DisableSTLWarnings.h vs. DisableSTLUsageWarnings.h:
// ----
//   DisableSTLWarnings.h  (** this file **)
//     Turns off warnings *while* including STL headers.  These warnings
//     are to be reenabled before compiling your code, using push/pop
//     #pragmas.
//   DisableSTLUsageWarnings.h
//     Turns off warnings while compiling your code, *after* including
//     STL headers.


// HOW TO USE THIS FILE
//
// ... Top of your file ...
//
// #pragma warning( push, 1 )
// #include "DisableSTLWarnings.h"
// ... Include troublesome STL headers here ...
// #pragma warning( pop )
// #include "DisableSTLUsageWarnings.h"
//
// ... Include other files here ...
//
// ... Rest of your file ...


#pragma warning( disable: 4018 )  // signed/unsigned mismatch in comparison op
#pragma warning( disable: 4100 )  // unref'd formal param
#pragma warning( disable: 4146 )  // unary minus applied to unsigned
#pragma warning( disable: 4244 )  // integer conversion to smaller type
#pragma warning( disable: 4284 )  // iterator::operator->() return type when using ptr template type
#pragma warning( disable: 4511 )  // could not generate copy constructor
#pragma warning( disable: 4512 )  // could not generate assignment op
#pragma warning( disable: 4663 )  // deprecated template specialization syntax
#pragma warning( disable: 4710 )  // inlined function not inlined
#pragma warning( disable: 4786 )  // long templated symbol names

