Codemesh Runtime v3 C++ API Reference  3.9.205
xmog-config-windows-msvc.h
1 //
2 // Copyright (c) 1999-2020 by Codemesh, Inc.. ALL RIGHTS RESERVED.
3 //
4 
5 // included for proxy constant values
6 #include <limits>
7 
8 #define XMOG_CPP_CODE "msvc"
9 
10 // default value for wchar_t legality
11 #ifndef XMOG_SUPPORTS_WCHAR_T
12 # define XMOG_SUPPORTS_WCHAR_T 1
13 # if (_MSC_VER>=1300)
14 # define XMOG_WCHAR __wchar_t
15 # else
16 # define XMOG_WCHAR wchar_t
17 # endif
18 #endif
19 
20 
21 // default value for whether an 'unsigned short*' overload for 'wchar_t' needs to be declared
22 #ifndef XMOG_REQUIRES_UNSIGNED_SHORT_OVERLOAD
23 # if (XMOG_BUILD_XMOG!=1) && (_MSC_VER>=1300) && !defined(_NATIVE_WCHAR_T_DEFINED)
24 # define XMOG_REQUIRES_UNSIGNED_SHORT_OVERLOAD 1
25 # else
26 # define XMOG_REQUIRES_UNSIGNED_SHORT_OVERLOAD 0
27 # endif
28 #endif
29 
30 
31 #define XMOG_INLINE __inline
32 #define XMOG_MUTABLE mutable
33 #define XMOG_EXPLICIT explicit
34 
35 
36 // default the flag that governs whether the two argument 'delete' operator is declared
37 #ifndef XMOG_SUPPORTS_PLACEMENT_DELETE
38 # define XMOG_SUPPORTS_PLACEMENT_DELETE 1
39 #endif
40 
41 // default the flag that governs whether the two argument 'new' operator is declared
42 #ifndef XMOG_SUPPORTS_PLACEMENT_NEW
43 # define XMOG_SUPPORTS_PLACEMENT_NEW 1
44 #endif
45 
46 // default the flag that governs whether <typeinfo.h> or <typeinfo> should be used
47 #ifndef XMOG_SUPPORTS_TYPEINFO
48 # define XMOG_SUPPORTS_TYPEINFO 0
49 #endif
50 
51 // Compiler sets _CPPRTTI if rtti is enabled.
52 #if !defined (_CPPRTTI)
53 # error You need to enable Runtime Type Information (RTTI)
54 #endif /* _CPPRTTI */
55 
56 
57 #pragma warning( disable : 4250 )
58 #pragma warning( disable : 4251 )
59 #pragma warning( disable : 4355 )
60 #pragma warning( disable : 4786 )
61 
62 
63 #ifndef XMOG_SUPPORTS_USING
64 # define XMOG_SUPPORTS_USING 1
65 #endif
66 
67 // we build the .NET support only into the MSVC runtime because
68 // we don't need to support any other compilers there (it's not
69 // publicly used)
70 #ifndef XMOG_SUPPORTS_DOTNET
71 # define XMOG_SUPPORTS_DOTNET 1
72 #endif
73 
74 // we currently only build the CLR hosting support only into the MSVC
75 // runtime.
76 #if !defined(XMOG_SUPPORTS_CLR_HOSTING) && (XMOG_SUPPORTS_DOTNET==1)
77 # define XMOG_SUPPORTS_CLR_HOSTING 0
78 #endif
79 
80 #ifndef XMOG_DOTNET_EXPORT
81 # define XMOG_DOTNET_EXPORT __declspec(dllexport)
82 #endif
83 
84 #ifndef XMOG_DOTNET_CALL
85 # define XMOG_DOTNET_CALL __stdcall
86 #endif
87 
88 // support for proxy constants
89 #ifndef XMOG_NAN
90 # define XMOG_NAN(x) ::std::numeric_limits< x >::quiet_NaN();
91 #endif
92 
93 #ifndef XMOG_NEG_INF
94 # define XMOG_NEG_INF(x) -::std::numeric_limits< x >::infinity();
95 #endif
96 
97 #ifndef XMOG_POS_INF
98 # define XMOG_POS_INF(x) ::std::numeric_limits< x >::infinity();
99 #endif
100 

Copyright (c) 1999-2020 by Codemesh, Inc., ALL RIGHTS RESERVED.