GitHub Actions: Try MSVC builds with /std:c++17 and 20
[ACE_TAO.git] / ACE / ace / config-win32-msvc-7.h
blob9db4d39204b86ee523f3f35e5e3201d056cc06ee
1 /* -*- C++ -*- */
2 //=============================================================================
3 /**
4 * @file config-win32-msvc-7.h
6 * @brief Microsoft Visual C++ 7.0 configuration file.
8 * This file is the ACE configuration file for Microsoft Visual C++ version 7.
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_7_H
17 #define ACE_CONFIG_WIN32_MSVC_7_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 // Visual C++ 7.0 (.NET) deprecated the old iostreams
25 #if !defined (ACE_HAS_STANDARD_CPP_LIBRARY)
26 #define ACE_HAS_STANDARD_CPP_LIBRARY 1
27 #endif
29 #if !defined (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB)
30 #define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
31 #endif
33 // Win64 SDK compiler claims std::auto_ptr<>::reset not available.
34 #if defined (_WIN64) || defined (WIN64)
35 #define ACE_AUTO_PTR_LACKS_RESET
36 #endif
38 #define ACE_HAS_ITOA
39 #define ACE_HAS_HEADER_ALLOCATED_CLASS_STATIC_CONST_INT_STOREAGE
40 #define ACE_HAS_WORKING_EXPLICIT_TEMPLATE_DESTRUCTOR
42 #define ACE_ITOA_EQUIVALENT ::_itoa
43 #define ACE_STRCASECMP_EQUIVALENT ::_stricmp
44 #define ACE_STRNCASECMP_EQUIVALENT ::_strnicmp
45 #define ACE_WCSDUP_EQUIVALENT ::_wcsdup
47 #define ACE_LACKS_STRPTIME
49 #define ACE_LACKS_STRTOK_R
51 #define ACE_HAS_SIG_ATOMIC_T
52 #define ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES
53 #define ACE_LACKS_STRRECVFD
54 #define ACE_HAS_CPLUSPLUS_HEADERS
56 #define ACE_TEMPLATES_REQUIRE_SOURCE
58 // Platform provides ACE_TLI function prototypes.
59 // For Win32, this is not really true, but saves a lot of hassle!
60 #define ACE_HAS_TLI_PROTOTYPES
62 // Platform support linebuffered streaming is broken
63 #define ACE_LACKS_LINEBUFFERED_STREAMBUF
65 #if !defined (ACE_HAS_WINCE) && !(defined (__INTEL_COMPILER) && (__INTEL_COMPILER == 900))
66 # define ACE_HAS_INTRINSIC_INTERLOCKED
67 # define ACE_HAS_INTRINSIC_BYTESWAP
68 #endif
70 #if defined (ACE_HAS_STANDARD_CPP_LIBRARY) && (ACE_HAS_STANDARD_CPP_LIBRARY != 0)
72 // Platform has its Standard C++ library in the namespace std
73 # if !defined (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB)
74 # define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
75 # endif /* ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB */
77 // ace/iostream.h does not work with the standard cpp library (yet).
78 # if !defined (ACE_USES_OLD_IOSTREAMS)
79 # define ACE_LACKS_ACE_IOSTREAM
80 # endif /* ! ACE_USES_OLD_IOSTREAMS */
82 // Starting with MSVC 7.1, std::new throws std::bad_alloc on out-of-memory.
83 // Since we don't support MSVC 7.0, don't test for it.
84 # define ACE_NEW_THROWS_EXCEPTIONS
85 # define ACE_HAS_NEW_NOTHROW
87 #else
89 // iostream header lacks ipfx (), isfx (), etc., declarations
90 # define ACE_LACKS_IOSTREAM_FX
92 #endif
94 // There are too many instances of this warning to fix it right now.
95 // Maybe in the future.
96 // 'this' : used in base member initializer list
97 #pragma warning(disable:4355)
99 // 'class1' : inherits 'class2::member' via dominance
100 #pragma warning(disable:4250)
102 // C++ Exception Specification ignored
103 #pragma warning(disable:4290)
105 // Disable warning of using Microsoft Extension.
106 #pragma warning(disable:4231)
108 // 'function' : unreferenced local function has been removed
109 #pragma warning(disable:4505)
111 // A template can not be exported. Only an instantiation may be exported.
112 #define ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_EXPORT
114 // At least for ACE_UNIMPLEMENTED_FUNC in class templates, this is needed to
115 // explicitly instantiate a template that has ACE_UNIMPLEMENTED_FUNC.
116 # define ACE_NEEDS_FUNC_DEFINITIONS
118 #include /**/ "ace/post.h"
119 #endif /* ACE_CONFIG_WIN32_MSVC_7_H */