178 #pragma warning( disable : 4355 ) 179 #endif 180 181 182 #pragma warning( disable : 4100 ) // unreferenced formal parameter 183 #pragma warning( disable : 4127 ) // conditional expression is constant 184 #pragma warning( disable : 4514 ) // unreferenced inline function has been removed 185 #pragma warning( disable : 4244 ) // possible loss of data 186 #pragma warning( disable : 4512 ) // assignment operator could not be generated 187 #pragma warning( disable : 4201 ) // nonstandard extension used : nameless struct/union (needed in windows.h) 188 #pragma warning( disable : 4511 ) // copy constructor could not be generated 189 #pragma warning( disable : 4291 ) // no matching operator delete found; memory will not be freed if initialization thows an exception 190 #ifdef CHECK_UNHANDLED_OOPS 191 #pragma warning( disable : 4521 ) // class has multiple copy ctors of a single type 192 #pragma warning( disable : 4522 ) // class has multiple assignment operators of a single type 193 #endif // CHECK_UNHANDLED_OOPS 194 #if _MSC_VER >= 1400 195 #pragma warning( disable : 4996 ) // unsafe string functions. Same as define _CRT_SECURE_NO_WARNINGS/_CRT_SECURE_NO_DEPRICATE 196 #endif 197 198 inline int vsnprintf(char* buf, size_t count, const char* fmt, va_list argptr) { 199 // If number of characters written == count, Windows doesn't write a 200 // terminating NULL, so we do it ourselves. 201 int ret = _vsnprintf(buf, count, fmt, argptr); 202 if (count > 0) buf[count-1] = '\0'; 203 return ret; 204 } 205 206 // Portability macros 207 #define PRAGMA_INTERFACE 208 #define PRAGMA_IMPLEMENTATION 209 #define PRAGMA_IMPLEMENTATION_(arg) 210 #define VALUE_OBJ_CLASS_SPEC : public _ValueObj 211 212 // Formatting. 213 #define FORMAT64_MODIFIER "I64" 214 215 // Visual Studio doesn't provide inttypes.h so provide appropriate definitions here. 216 // The 32 bits ones might need I32 but seem to work ok without it. 217 #define PRId32 "d" 218 #define PRIu32 "u" 219 #define PRIx32 "x" 220 221 #define PRId64 "I64d" 222 #define PRIu64 "I64u" 223 #define PRIx64 "I64x" 224 | 178 #pragma warning( disable : 4355 ) 179 #endif 180 181 182 #pragma warning( disable : 4100 ) // unreferenced formal parameter 183 #pragma warning( disable : 4127 ) // conditional expression is constant 184 #pragma warning( disable : 4514 ) // unreferenced inline function has been removed 185 #pragma warning( disable : 4244 ) // possible loss of data 186 #pragma warning( disable : 4512 ) // assignment operator could not be generated 187 #pragma warning( disable : 4201 ) // nonstandard extension used : nameless struct/union (needed in windows.h) 188 #pragma warning( disable : 4511 ) // copy constructor could not be generated 189 #pragma warning( disable : 4291 ) // no matching operator delete found; memory will not be freed if initialization thows an exception 190 #ifdef CHECK_UNHANDLED_OOPS 191 #pragma warning( disable : 4521 ) // class has multiple copy ctors of a single type 192 #pragma warning( disable : 4522 ) // class has multiple assignment operators of a single type 193 #endif // CHECK_UNHANDLED_OOPS 194 #if _MSC_VER >= 1400 195 #pragma warning( disable : 4996 ) // unsafe string functions. Same as define _CRT_SECURE_NO_WARNINGS/_CRT_SECURE_NO_DEPRICATE 196 #endif 197 198 #if _MSC_VER <= 1800 199 inline int vsnprintf(char* buf, size_t count, const char* fmt, va_list argptr) { 200 // If number of characters written == count, Windows doesn't write a 201 // terminating NULL, so we do it ourselves. 202 int ret = _vsnprintf(buf, count, fmt, argptr); 203 if (count > 0) buf[count-1] = '\0'; 204 return ret; 205 } 206 #endif 207 208 // Portability macros 209 #define PRAGMA_INTERFACE 210 #define PRAGMA_IMPLEMENTATION 211 #define PRAGMA_IMPLEMENTATION_(arg) 212 #define VALUE_OBJ_CLASS_SPEC : public _ValueObj 213 214 // Formatting. 215 #define FORMAT64_MODIFIER "I64" 216 217 // Visual Studio doesn't provide inttypes.h so provide appropriate definitions here. 218 // The 32 bits ones might need I32 but seem to work ok without it. 219 #define PRId32 "d" 220 #define PRIu32 "u" 221 #define PRIx32 "x" 222 223 #define PRId64 "I64d" 224 #define PRIu64 "I64u" 225 #define PRIx64 "I64x" 226 |