Nuke #pragma implementation/interface's
[wxWidgets.git] / include / wx / beforestd.h
1 ///////////////////////////////////////////////////////////////////////////////
2 // Name: include/wx/beforestd.h
3 // Purpose: #include before STL headers
4 // Author: Vadim Zeitlin
5 // Modified by:
6 // Created: 07/07/03
7 // RCS-ID: $Id$
8 // Copyright: (c) 2003 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
9 // Licence: wxWindows licence
10 ///////////////////////////////////////////////////////////////////////////////
11
12 /**
13 Unfortunately, when compiling at maximum warning level, the standard
14 headers themselves may generate warnings -- and really lots of them. So
15 before including them, this header should be included to temporarily
16 suppress the warnings and after this the header afterstd.h should be
17 included to enable them back again.
18
19 Note that there are intentionally no inclusion guards in this file, because
20 it can be included several times.
21 */
22
23 // VC 7.x isn't as bad as VC6 and doesn't give these warnings but eVC (which
24 // defines _MSC_VER as 1201) does need to be included as it's VC6-like
25 #if defined(__VISUALC__) && __VISUALC__ <= 1201
26 // MSVC 5 does not have this
27 #if __VISUALC__ > 1100
28 // we have to disable (and reenable in afterstd.h) this one because,
29 // even though it is of level 4, it is not disabled by warning(push, 1)
30 // below for VC7.1!
31
32 // unreachable code
33 #pragma warning(disable:4702)
34
35 #pragma warning(push, 1)
36 #else // VC 5
37 // 'expression' : signed/unsigned mismatch
38 #pragma warning(disable:4018)
39
40 // 'conversion' : conversion from 'type1' to 'type2',
41 // possible loss of data
42 #pragma warning(disable:4244)
43
44 // C++ language change: to explicitly specialize class template
45 // 'identifier' use the following syntax
46 #pragma warning(disable:4663)
47 #endif
48
49 // these warning have to be disabled and not just temporarily disabled
50 // because they will be given at the end of the compilation of the
51 // current source and there is absolutely nothing we can do about them
52
53 // 'foo': unreferenced inline function has been removed
54 #pragma warning(disable:4514)
55
56 // 'function' : function not inlined
57 #pragma warning(disable:4710)
58
59 // 'id': identifier was truncated to 'num' characters in the debug info
60 #pragma warning(disable:4786)
61 #endif // VC++ < 7
62