summaryrefslogtreecommitdiffstats
path: root/multimc_pragma.h
blob: 4650e4da39e0960d4dfbec76f41c0fc2c3bc13ff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#pragma once

// This is here to keep MSVC from spamming the build output with nonsense
// Call it public domain.

#ifdef _MSC_VER
	// 'identifier' : class 'type' needs to have dll-interface to be used by clients of class 'type2'
	// C4251 can be ignored in Microsoft Visual C++ 2005 if you are deriving from a type
	// in the Standard C++ Library, compiling a debug release (/MTd) and where the compiler
	// error message refers to _Container_base.
	// Shows up when you export classes that use STL types. Stupid.
	// #pragma warning( disable: 4251 )
	
	// C4273 - inconsistent DLL linkage. how about none?
	#pragma warning( disable: 4273 )
	
	// don't display bogus 'deprecation' and 'unsafe' warnings.
	// See the idiocy: http://msdn.microsoft.com/en-us/magazine/cc163794.aspx
	#define _CRT_SECURE_NO_DEPRECATE
	#define _SCL_SECURE_NO_DEPRECATE
	// Let me demonstrate:
	/**
	 * [peterix@peterix dfhack]$ man wcscpy_s
	 * No manual entry for wcscpy_s
	 *
	 * Proprietary extensions.
	 */
	//'function': was declared deprecated
	#pragma warning( disable: 4996 )
	
	// disable stupid - forcing value to bool 'true' or 'false' (performance warning).
	// When I do this, it's intentional. Always.
	#pragma warning( disable: 4800 )
	
	// disable more stupid - The compiler ignored an unrecognized pragma. GOOD JOB, DON'T SPAM ME WITH THAT
	#pragma warning( disable: 4068 )
	
	// no signed value outside enum range bs
	//#pragma warning( disable: 4341)
	
	// just shut up already - conversion between types loses precision
	//#pragma warning( disable: 4244)
	
	// signed/unsigned mismatch
	//#pragma warning( disable: 4018)
	
	// nonstandard extension used: enum 'df::whatever::etc' used in qualified name
	//#pragma warning( disable: 4482)
#endif