Correct feature names
[ACE_TAO.git] / ACE / ace / config-win32-msvc-8.h
blobc2dfcfddd37dd23be21ca74041f5e0042c897d42
1 /* -*- C++ -*- */
2 //=============================================================================
3 /**
4 * @file config-win32-msvc-8.h
6 * @brief Microsoft Visual C++ 8.0 configuration file.
8 * This file is the ACE configuration file for Microsoft Visual C++ version 8.
10 * @note Do not include this file directly, include config-win32.h instead.
12 * @author Darrell Brunsch <brunsch@cs.wustl.edu>
14 //=============================================================================
16 #ifndef ACE_CONFIG_WIN32_MSVC_8_H
17 #define ACE_CONFIG_WIN32_MSVC_8_H
18 #include /**/ "ace/pre.h"
20 #ifndef ACE_CONFIG_WIN32_H
21 #error Use config-win32.h in config.h instead of this header
22 #endif /* ACE_CONFIG_WIN32_H */
24 #ifndef ACE_WIN32_VC8
25 # define ACE_WIN32_VC8
26 #endif
28 // Visual C++ 8.0 (.NET) deprecated the old iostreams
29 #if !defined (ACE_HAS_STANDARD_CPP_LIBRARY)
30 #define ACE_HAS_STANDARD_CPP_LIBRARY 1
31 #endif
33 #if !defined (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB)
34 #define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
35 #endif
37 // Windows' timeval is non-conformant (defined in terms of long instead of
38 // time_t) and VC8 changed time_t to a 64-bit value even when compiling a
39 // 32-bit application. Therefore, ace/Time_Value needs to rearrange a few
40 // things for this compiler. See Time_Value.h for complete details.
41 #if !defined (_USE_32BIT_TIME_T)
42 # define ACE_HAS_TIME_T_LONG_MISMATCH
43 #endif
45 #define ACE_HAS_ITOA
46 #define ACE_HAS_HEADER_ALLOCATED_CLASS_STATIC_CONST_INT_STOREAGE
47 #define ACE_HAS_WORKING_EXPLICIT_TEMPLATE_DESTRUCTOR
49 #define ACE_ITOA_EQUIVALENT ::_itoa
50 #define ACE_STRCASECMP_EQUIVALENT ::_stricmp
51 #define ACE_STRNCASECMP_EQUIVALENT ::_strnicmp
52 #define ACE_WCSDUP_EQUIVALENT ::_wcsdup
53 #if defined (ACE_HAS_WINCE)
54 # define ACE_FILENO_EQUIVALENT ::_fileno
55 #else
56 # define ACE_FILENO_EQUIVALENT(X) (_get_osfhandle (::_fileno (X)))
57 #endif
59 // Windows Mobile 6 doesn't do sig_atomic_t, but maybe future versions will.
60 // This has been true up thrugh the versions. We don't have any indication
61 // that this might be supported in the future, but it is an easy enough fix
62 // to bump the wince revision number when a new version is released.
63 # if !defined (_WIN32_WCE) || (_WIN32_WCE > 0x601)
64 # define ACE_HAS_SIG_ATOMIC_T
65 # endif /* !Win CE 6.0 or less */
67 #define ACE_LACKS_STRPTIME
69 #if !defined (ACE_HAS_WINCE)
70 # define ACE_HAS_INTRIN_H
71 # define ACE_HAS_INTRINSIC_INTERLOCKED
72 #endif
74 #if !defined (_WIN32_WCE) || (_WIN32_WCE >= 0x501)
75 # define ACE_HAS_INTRINSIC_BYTESWAP
76 #endif
78 #define ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES
79 #define ACE_LACKS_STRRECVFD
80 #define ACE_HAS_CPLUSPLUS_HEADERS
82 #define ACE_TEMPLATES_REQUIRE_SOURCE
84 // Platform provides ACE_TLI function prototypes.
85 // For Win32, this is not really true, but saves a lot of hassle!
86 #define ACE_HAS_TLI_PROTOTYPES
88 // Platform support linebuffered streaming is broken
89 #define ACE_LACKS_LINEBUFFERED_STREAMBUF
91 #if defined (ACE_HAS_STANDARD_CPP_LIBRARY) && (ACE_HAS_STANDARD_CPP_LIBRARY != 0)
93 // Platform has its Standard C++ library in the namespace std
94 # if !defined (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB)
95 # define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
96 # endif /* ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB */
98 // ace/iostream.h does not work with the standard cpp library (yet).
99 # if !defined (ACE_USES_OLD_IOSTREAMS)
100 # define ACE_LACKS_ACE_IOSTREAM
101 # endif /* ! ACE_USES_OLD_IOSTREAMS */
103 // Starting with MSVC 7.1, std::new throws std::bad_alloc on out-of-memory.
104 #define ACE_NEW_THROWS_EXCEPTIONS
105 #define ACE_HAS_NEW_NOTHROW
107 #else
109 // iostream header lacks ipfx (), isfx (), etc., declarations
110 # define ACE_LACKS_IOSTREAM_FX
112 #endif
114 // There are too many instances of this warning to fix it right now.
115 // Maybe in the future.
117 // Disable warning of using Microsoft Extension.
118 #pragma warning(disable:4231)
120 // 'class1' : inherits 'class2::member' via dominance
121 #pragma warning(disable:4250)
123 // 'this' : used in base member initializer list
124 #pragma warning(disable:4355)
126 // CE (at least thru Windows Mobile 5) doesn't have the new, secure CRT.
127 #if !defined (ACE_HAS_WINCE) && !defined (ACE_HAS_TR24731_2005_CRT)
128 # define ACE_HAS_TR24731_2005_CRT
129 #endif
131 // Detect Platform SDK 64-bit (AMD64) compiler using _MSC_FULL_VER
132 #if (defined (_WIN64) || defined (WIN64)) && _MSC_FULL_VER < 140050000
133 # define ACE_AUTO_PTR_LACKS_RESET
134 # define ACE_MSVC_USES_DOUBLE_UNDERSCORE_STAT64
135 # define ACE_HAS_BROKEN_STD_REVERSE_ITERATOR
136 # define ACE_LACKS_NUMERIC_LIMITS_64_BIT_TYPES
137 # undef ACE_HAS_TR24731_2005_CRT
138 # undef ACE_HAS_INTRIN_H
139 #endif
141 // On CE w/o MFC config-WinCE.h needs to declare a placement new. This
142 // triggers a warning that there's no placement delete, which can be ignored.
143 #if defined (ACE_HAS_WINCE) && !defined (ACE_HAS_MFC)
144 # pragma warning(disable:4291)
145 #endif
147 // A template can not be exported. Only an instantiation may be exported.
148 #define ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_EXPORT
150 // At least for ACE_UNIMPLEMENTED_FUNC in class templates, this is needed to
151 // explicitly instantiate a template that has ACE_UNIMPLEMENTED_FUNC.
152 # define ACE_NEEDS_FUNC_DEFINITIONS
154 #include /**/ "ace/post.h"
155 #endif /* ACE_CONFIG_WIN32_MSVC_8_H */