Ne.app NeANT
The Ne.app NeANT User module of the NeANT distribution.
_config-msvc.h
Go to the documentation of this file.
1
32#include "_config-msvcrt.h"
33
34#if _MSC_VER <= 1300 // MSVC <= 7.0
35# define _RWSTD_NO_PTR_VALUE_TEMPLATE_OVERLOAD
36# define _RWSTD_NO_PRAGMA_INSTANTIATE
37 // disable explicit instantiation extensions if building
38 // optimized client code (all templates still explicitly
39 // instantiated in the library);
40 // *** Not currently done for MSVC 7, since an implicit
41 // instantiation bug causes multiply defined symbols
42 // in downstream libraries
43# ifndef _RWSTD_NO_STRING_NPOS_TYPE
44 // define basic_string::npos to be of type size_t
45 // instead of basic_string::size_type to work around
46 // an MSVC 7.0 bug (PR #26549)
47# define _RWSTD_NO_STRING_NPOS_TYPE
48# endif // _RWSTD_NO_STRING_NPOS_TYPE
49#endif // MSVC <= 7.0
50
51// disable "Same type qualifier used more than once"
52#pragma warning (disable: 4114)
53
54// disable "return type for operator->' is not a UDT"
55#pragma warning (disable: 4284)
56
57// disable "nonstandard extension used :"
58// "'extern' before template explicit instantiation"
59#pragma warning (disable: 4231)
60
61// RWDLL - defined for all Rogue Wave(R) products built as shared libs
62// _RWSHARED - defined for libstd built/used as a shared lib
63#if defined (RWDLL) || defined (_RWSHARED)
64
65 // disable "class needs to have dll-interface to be used by cliens"
66# pragma warning (disable: 4251)
67
68 // disable "non dll-interface class used as base for dll-interface class"
69# pragma warning (disable: 4275)
70
71#endif // RWDLL || _RWSHARED
72
73// disable "decorated name length exceeded"
74#pragma warning (disable: 4503)
75
76// convert warning "'identifier' used on polymorphic type 'type' with /GR-;"
77// "unpredictable behavior may result" to error
78#pragma warning (error: 4541)
79
80// disable "'identifier' : no suitable definition"
81// "provided for explicit template instantiation request"
82#pragma warning (disable: 4661)
83
84// disable "identifier was truncated to 255 characters"
85#pragma warning (disable: 4786)
86
87// disable "'function': was declared deprecated"
88#pragma warning (disable: 4996)
89
90// type trait helpers provided by msvc
91#if defined (_MSC_FULL_VER) && (_MSC_FULL_VER >= 140050215)
92# define _RWSTD_TT_HAS_NOTHROW_ASSIGN(T) __has_nothrow_assign(T)
93# define _RWSTD_TT_HAS_NOTHROW_CTOR(T) __has_nothrow_constructor(T)
94# define _RWSTD_TT_HAS_NOTHROW_COPY(T) __has_nothrow_copy(T)
95
96# define _RWSTD_TT_HAS_TRIVIAL_ASSIGN(T) __has_trivial_assign(T)
97# define _RWSTD_TT_HAS_TRIVIAL_CTOR(T) __has_trivial_constructor(T)
98# define _RWSTD_TT_HAS_TRIVIAL_COPY(T) __has_trivial_copy(T)
99# define _RWSTD_TT_HAS_TRIVIAL_DTOR(T) __has_trivial_destructor(T)
100
101# define _RWSTD_TT_HAS_VIRTUAL_DTOR(T) __has_virtual_destructor(T)
102
103# define _RWSTD_TT_IS_ABSTRACT(T) __is_abstract(T)
104# define _RWSTD_TT_IS_BASE_OF(T,U) __is_base_of(T,U)
105# define _RWSTD_TT_IS_CLASS(T) __is_class(T)
106# define _RWSTD_TT_IS_POD(T) __is_pod(T)
107# define _RWSTD_TT_IS_CONVERTIBLE(T,U) __is_convertible_to(T,U)
108# define _RWSTD_TT_IS_EMPTY(T) __is_empty(T)
109# define _RWSTD_TT_IS_ENUM(T) __is_enum(T)
110# define _RWSTD_TT_IS_POLYMORPHIC(T) __is_polymorphic(T)
111# define _RWSTD_TT_IS_UNION(T) __is_union(T)
112
113# define _RWSTD_TT_ALIGN_OF(T) __alignof(T)
114# define _RWSTD_TT_ALIGNED_POD(N) \
115 struct {__declspec(align(N)) unsigned char _C_align; }
116
117# define _RWSTD_TT_MAX_ALIGNMENT 8192
118#endif // _MSC_FULL_VER >= 140050215
119