diff options
author | schmidt <douglascraigschmidt@users.noreply.github.com> | 2000-01-15 19:04:11 +0000 |
---|---|---|
committer | schmidt <douglascraigschmidt@users.noreply.github.com> | 2000-01-15 19:04:11 +0000 |
commit | f7d0dfe76d9cc2891e49ca7768d8ba44d9880130 (patch) | |
tree | b482a7f0f1514a1a508c548778ffdcc64b35bc3b /ace/config-win32-msvc.h | |
parent | 0c26da7112738b12d2c053b39562b7bde3ff232b (diff) | |
download | ATCD-f7d0dfe76d9cc2891e49ca7768d8ba44d9880130.tar.gz |
ChangeLogTag:Sat Jan 15 00:41:12 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
Diffstat (limited to 'ace/config-win32-msvc.h')
-rw-r--r-- | ace/config-win32-msvc.h | 209 |
1 files changed, 209 insertions, 0 deletions
diff --git a/ace/config-win32-msvc.h b/ace/config-win32-msvc.h new file mode 100644 index 00000000000..e98f2fd5147 --- /dev/null +++ b/ace/config-win32-msvc.h @@ -0,0 +1,209 @@ +// -*- C++ -*- +// $Id$ + +// The following configuration file contains the defines +// common to all Win32/MSVC/MFC combinations. + +#ifndef ACE_WIN32_MSVC_H +#define ACE_WIN32_MSVC_H + +#if defined (_MSC_VER) + +# include "ace/config-win32-common.h" + +# define ACE_CC_NAME "Visual C++" +# define ACE_CC_PREPROCESSOR "CL.EXE" +# define ACE_CC_PREPROCESSOR_ARGS "-nologo -E" + +# if (_MSC_VER >= 1200) +# define ACE_CC_MAJOR_VERSION 6 +# elif (_MSC_VER >= 1100) +# define ACE_CC_MAJOR_VERSION 5 +# elif (_MSC_VER >= 1000) +# define ACE_CC_MAJOR_VERSION 4 +# endif /* _MSC_VER >= 1200 */ + +# define ACE_CC_MINOR_VERSION (_MSC_VER % 100) +# define ACE_CC_BETA_VERSION (0) + +// Define this if you want to use the standard C++ library +//#define ACE_HAS_STANDARD_CPP_LIBRARY 1 + +// MSVC enforces the One Definition Rule +# define ACE_HAS_ONE_DEFINITION_RULE + +# if defined (_MSC_VER) && (_MSC_VER >= 1020) +# if !defined (ACE_HAS_STANDARD_CPP_LIBRARY) +# define ACE_HAS_STANDARD_CPP_LIBRARY 0 +# endif +# else +# if defined (ACE_HAS_STANDARD_CPP_LIBRARY) +# undef ACE_HAS_STANDARD_CPP_LIBRARY +# endif +# define ACE_HAS_STANDARD_CPP_LIBRARY 0 +# endif + +// The STL that comes with ACE uses the std namespace. Note however, it is not +// part of the standard C++ library +# if !defined (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB) +# define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1 +# endif /* ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB */ + +# if !defined (ACE_HAS_BROKEN_NESTED_TEMPLATES) +# define ACE_HAS_BROKEN_NESTED_TEMPLATES +# endif /* ACE_HAS_BROKEN_NESTED_TEMPLATES */ + +// By default, we disable the C++ casting because +// it requires the RTTI support to be turned on which +// is not something we usually do. +# if !defined (ACE_HAS_ANSI_CASTS) +# define ACE_HAS_ANSI_CASTS 0 +# endif + +// MSVC already defined __TEXT +# define ACE_HAS_TEXT_MACRO_CONFLICT + +# define ACE_HAS_EXPLICIT_KEYWORD +# define ACE_HAS_MUTABLE_KEYWORD + +// VC5 doesn't support operator placement delete +# if defined (_MSC_VER) && (_MSC_VER < 1200) +# define ACE_LACKS_PLACEMENT_OPERATOR_DELETE +# endif /* _MSC_VER && _MSC_VER < 1200 */ + +# define ACE_HAS_WCHAR_TYPEDEFS_USHORT +# if !defined (ACE_HAS_WINCE) +# define ACE_HAS_EXCEPTIONS +# endif /* ACE_HAS_WINCE */ +# define ACE_HAS_BROKEN_NAMESPACES +# define ACE_HAS_BROKEN_IMPLICIT_CONST_CAST +# define ACE_HAS_WORKING_EXPLICIT_TEMPLATE_DESTRUCTOR + +# if defined (ACE_HAS_ANSI_CASTS) && (ACE_HAS_ANSI_CASTS == 0) +# undef ACE_HAS_ANSI_CASTS +# endif /* ACE_HAS_ANSI_CASTS && ACE_HAS_ANSI_CASTS == 0 */ + +# if _MSC_VER < 1000 +# define ACE_LACKS_PRAGMA_ONCE +# endif /* _MSC_VER < 1000 */ + +// Only >= MSVC 5.0 definitions +# if (_MSC_VER >= 1100) +# if !defined (ACE_HAS_WINCE) +# define ACE_HAS_SIG_ATOMIC_T +# endif /* ACE_HAS_WINCE */ +# endif /* _MSC_VER >= 1100 */ + +// Only >= MSVC 6.0 definitions +# if (_MSC_VER >= 1200) +# define ACE_HAS_TYPENAME_KEYWORD +# define ACE_HAS_STD_TEMPLATE_SPECIALIZATION +# endif /* _MSC_VER >= 1200 */ + +// Compiler doesn't support static data member templates. +# define ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES + +# define ACE_LACKS_MODE_MASKS +# define ACE_LACKS_STRRECVFD + +// Compiler/platform has correctly prototyped header files. +# define ACE_HAS_CPLUSPLUS_HEADERS + +// Platform supports POSIX timers via timestruc_t. +//define ACE_HAS_POSIX_TIME +# define ACE_HAS_STRPTIME +# define ACE_LACKS_NATIVE_STRPTIME + +// Compiler/platform supports strerror (). +# define ACE_HAS_STRERROR + +# define ACE_TEMPLATES_REQUIRE_SOURCE + +// Platform provides ACE_TLI function prototypes. +// For Win32, this is not really true, but saves a lot of hassle! +# define ACE_HAS_TLI_PROTOTYPES +# define ACE_HAS_GNU_CSTRING_H + +// Platform support linebuffered streaming is broken +# define ACE_LACKS_LINEBUFFERED_STREAMBUF + +// Template specialization is supported. +# define ACE_HAS_TEMPLATE_SPECIALIZATION + +// ----------------- "derived" defines and includes ----------- + +# if defined (ACE_HAS_STANDARD_CPP_LIBRARY) && (ACE_HAS_STANDARD_CPP_LIBRARY != 0) + +# if (_MSC_VER > 1020) +// Platform has its Standard C++ library in the namespace std +# if !defined (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB) +# define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1 +# endif /* ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB */ +# else /* (_MSC_VER > 1020) */ +# if defined (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB) +# undef ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB +# endif /* ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB */ +# define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 0 +# endif /* (_MSC_VER > 1020) */ + +// Microsoft's auto_ptr in standard cpp library doesn't have reset (). +# define ACE_AUTO_PTR_LACKS_RESET + +// ace/iostream.h does not work with the standard cpp library (yet). +# if !defined (ACE_USES_OLD_IOSTREAMS) +# define ACE_LACKS_ACE_IOSTREAM +# endif /* ! ACE_USES_OLD_IOSTREAMS */ +# else +// iostream header lacks ipfx (), isfx (), etc., declarations +# define ACE_LACKS_IOSTREAM_FX +# endif + +// While digging the MSVC 4.0 include files, I found how to disable +// MSVC warnings: --Amos Shapira + +// "C4355: 'this' : used in base member initializer list" +# pragma warning(disable:4355) /* disable C4514 warning */ +// #pragma warning(default:4355) // use this to reenable, if desired + +# pragma warning(disable:4201) /* winnt.h uses nameless structs */ + +# pragma warning(disable:4231) +// Disable warning of using Microsoft Extension. + +// MSVC 4.0 or greater +# if (_MSC_VER >= 1000) +// Compiler/Platform supports the "using" keyword. +# define ACE_HAS_USING_KEYWORD +# endif + +// MSVC 2.2 or lower +# if (_MSC_VER < 1000) +// This needs to be here since MSVC++ 2.0 seems to have forgotten to +// include it. Does anybody know which MSC_VER MSVC 2.0 has ? +inline void *operator new (unsigned int, void *p) { return p; } +# endif + +# if !defined(ACE_HAS_WINCE) +# if defined(ACE_HAS_DLL) && (ACE_HAS_DLL != 0) +# if !defined(_DLL) +// *** DO NOT *** DO NOT *** defeat this error message +// by defining _DLL yourself. RTFM and see who set _DLL. +# error You must link against (Debug) Multithreaded DLL run-time libraries. +# endif /* !_DLL */ +# endif /* ACE_HAS_DLL && ACE_HAS_DLL != 0 */ +# endif /* !ACE_HAS_WINCE */ + +# ifdef _DEBUG +# if !defined (ACE_HAS_WINCE) +# include /**/ <crtdbg.h> +# endif /* ACE_HAS_WINCE */ +# endif + +# pragma warning(default: 4201) /* winnt.h uses nameless structs */ + +// At least for Win32 - MSVC compiler (ver. 5) +# define ACE_UINT64_FORMAT_SPECIFIER "%I64u" + +#endif /* _MSC_VER */ + +#endif /* ACE_WIN32_COMMON_H */ |