Compare commits

..

33 Commits

Author SHA1 Message Date
nobody
f0436e972e This commit was manufactured by cvs2svn to create tag
'Version_1_21_1'.

[SVN r9561]
2001-03-14 15:36:54 +00:00
Dave Abrahams
e7bc4c14e4 Refactored EDG checks for Intel C++
[SVN r9474]
2001-03-07 03:55:21 +00:00
Dave Abrahams
7cb5dd3638 Factored EDG checks, added BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP for Intel C++ 5.0
[SVN r9405]
2001-03-04 15:06:11 +00:00
Beman Dawes
3e9b0c11d8 Minor Metrowerks fixes
[SVN r9371]
2001-03-01 16:23:18 +00:00
Jens Maurer
47ee67868c Compaq C++ has neither <slist> nor <hash_*>
[SVN r9296]
2001-02-20 17:52:35 +00:00
John Maddock
3a1146ef37 added BOOST_NO_INTRINSIC_WCHAR_T for ICL
[SVN r9269]
2001-02-19 12:50:27 +00:00
John Maddock
6ce87101d3 Added new type traits files.
[SVN r9238]
2001-02-17 12:25:45 +00:00
Dave Abrahams
0f89a54d5e Added BOOST_STATIC_CONSTANT
[SVN r9126]
2001-02-11 19:29:01 +00:00
Jeremy Siek
891b2db577 removed backslashes in macros
[SVN r9097]
2001-02-11 01:21:56 +00:00
Jens Maurer
c30c6e772a adjust for: _RWSTD_VER is six digits on Borland, four digits on Compaq C++
[SVN r9034]
2001-02-08 17:49:34 +00:00
John Maddock
21d4ae5c2c Fix for Rogue Wave library detection in config.hpp
[SVN r9032]
2001-02-08 12:58:11 +00:00
Jens Maurer
9b7b4524e3 added BOOST_NO_STDC_NAMESPACE for KCC 4.0a and older
because <cwchar> does not have using-declarations to put the contents of
<wchar.h> into namespace std, in contrast to <cstdio>, which does.


[SVN r8945]
2001-02-05 19:54:58 +00:00
Jens Maurer
6b3dd0d1cb added more Solaris deficiencies contributed by Nat Mishkin
[SVN r8861]
2001-02-02 18:57:46 +00:00
Jens Maurer
02a081b3e9 add support for the upcoming gcc 3.0
[SVN r8771]
2001-01-25 21:24:13 +00:00
Jens Maurer
f719f4b515 define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS only if _RWSTD_VER < 0x0203
[SVN r8695]
2001-01-21 21:36:36 +00:00
Dave Abrahams
238be9af6e BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS moved here from cast.hpp
Added missing BOOST_NO_STRINGSTREAM which some boost code seemed to depend on


[SVN r8667]
2001-01-21 05:30:47 +00:00
Beman Dawes
3f280cb058 Conditions for BOOST_NO_STDC_NAMESPACE under MSVC with STLport were not quite right.
[SVN r8640]
2001-01-18 21:28:50 +00:00
Jens Maurer
5b7bbe4533 do not pessimize later versions of SGI MIPSpro and Compaq C++
[SVN r8591]
2001-01-14 18:53:58 +00:00
Jens Maurer
5d11cac82c added BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
added compiler support for SGI IRIX CC and Compaq Tru64 cxx


[SVN r8570]
2001-01-13 10:11:12 +00:00
Beman Dawes
d46dcfbcbb BOOST_DECL fixes
[SVN r8559]
2001-01-12 15:28:20 +00:00
Beman Dawes
53c2862a77 Avoid spurious MSVC NOMINMAX redefinition warning (submitted by Andreas Scherer)
[SVN r8377]
2000-12-01 17:11:40 +00:00
Beman Dawes
aea3b88265 Added BOOST_NO_INT64_T comment pointing to <boost/cstdint.hpp>
[SVN r8344]
2000-11-27 19:23:16 +00:00
John Maddock
e89011502e EGCS 1.1.1 fix
[SVN r8237]
2000-11-17 11:33:43 +00:00
John Maddock
f0e359663f Fix for egcs 1.1.1 problems with std::auto_ptr
[SVN r8225]
2000-11-16 11:17:22 +00:00
Beman Dawes
e1e5feaa34 libraries.htm and people.htm moved to sub-directories to make root directory cleaner.
[SVN r8166]
2000-11-10 15:39:05 +00:00
John Maddock
d525802257 regex fixes for updated Dinkum library
[SVN r8161]
2000-11-09 13:03:41 +00:00
John Maddock
594d5bb6ee try again more broken connections
[SVN r7969]
2000-10-17 11:32:09 +00:00
John Maddock
fce75f3760 regex fixes
[SVN r7967]
2000-10-17 11:28:05 +00:00
Beman Dawes
c1ff06042d Add BOOST_NO_SLIST and BOOST_NO_HASH for Borland, although I agree with others that these defines are very questionable
[SVN r7934]
2000-10-13 20:02:20 +00:00
Dave Abrahams
169988f2b2 Added BOOST_STD_EXTENSION_NAMESPACE for Metrowerks compatibility
[SVN r7915]
2000-10-06 07:37:02 +00:00
Jeremy Siek
22cf95d7f7 added BOOST_NO_STD_MIN_MAX to config.hpp
did some VC++ porting


[SVN r7905]
2000-10-04 15:57:03 +00:00
Jens Maurer
f2e466b428 MSVC does not have an integral int64_t (large enum constants don't work)
[SVN r7885]
2000-10-01 17:07:40 +00:00
Jens Maurer
c34cb0d97d added BOOST_NO_INTEGRAL_INT64_T
[SVN r7874]
2000-09-29 22:05:51 +00:00
2 changed files with 212 additions and 16 deletions

View File

@@ -11,6 +11,21 @@
// http://www.boost.org/libs/config
// Revision History (excluding minor changes for specific compilers)
// 06 Mar 01 Refactored EDG checks for Intel C++ (Dave Abrahams)
// 04 Mar 01 Factored EDG checks, added BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
// for Intel C++ 5.0 (Dave Abrahams)
// 17 Feb 01 BOOST_NO_CV_SPECIALIZATIONS
// BOOST_NO_CV_VOID_SPECIALIZATIONS (John Maddock)
// 11 Feb 01 Added BOOST_STATIC_CONSTANT (Dave Abrahams)
// 20 Jan 01 BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS moved here from
// cast.hpp. Added missing BOOST_NO_STRINGSTREAM which some
// boost code seemed to depend on. (Dave Abrahams)
// 13 Jan 01 SGI MIPSpro and Compaq Tru64 Unix compiler support added
// (Jens Maurer)
// 13 Jan 01 BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP (Jens Maurer)
// 17 Nov 00 BOOST_NO_AUTO_PTR (John Maddock)
// 4 Oct 00 BOOST_NO_STD_MIN_MAX (Jeremy Siek)
// 29 Sep 00 BOOST_NO_INTEGRAL_INT64_T (Jens Maurer)
// 25 Sep 00 BOOST_NO_STD_ALLOCATOR (Jeremy Siek)
// 18 SEP 00 BOOST_NO_SLIST, BOOST_NO_HASH,
// BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
@@ -50,12 +65,31 @@
// burden where it should be, on non-conforming compilers. In the future,
// hopefully, less rather than more conformance flags will have to be defined.
// BOOST_NO_CV_SPECIALIZATIONS: if template specialisations for cv-qualified types
// conflict with a specialistaion for unqualififed type.
// BOOST_NO_CV_VOID_SPECIALIZATIONS: if template specialisations for cv-void types
// conflict with a specialistaion for void.
// BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP: Compiler does not implement
// argument-dependent lookup (also named Koenig lookup); see std::3.4.2
// [basic.koenig.lookup]
// BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS: Template value
// parameters cannot have a dependent type, for example
// "template<class T, typename T::type value> class X { ... };"
// BOOST_NO_INCLASS_MEMBER_INITIALIZATION: Compiler violates std::9.4.2/4.
// BOOST_NO_INT64_T: <boost/cstdint.hpp> does not support 64-bit integer
// types. (Set by <boost/cstdint.hpp> rather than <boost/config.hpp>).
// BOOST_NO_INTEGRAL_INT64_T: int64_t as defined by <boost/cstdint.hpp> is
// not an integral type.
// BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS: constants such as
// numeric_limits<T>::is_signed are not available for use at compile-time.
// BOOST_NO_MEMBER_TEMPLATES: Member template functions not fully supported.
// Also see BOOST_MSVC6_MEMBER_TEMPLATES in the Compiler Control section below.
@@ -99,6 +133,9 @@
// that imports a template from the global namespace into a named namespace.
// Probably Borland specific.
// BOOST_NO_AUTO_PTR: If the compiler / library supplies non-standard or broken
// std::auto_ptr.
// Compiler Control or Information Macros ----------------------------------//
//
// Compilers often supply features outside of the C++ Standard which need to be
@@ -107,12 +144,19 @@
// BOOST_DECL: Certain compilers for Microsoft operating systems require
// non-standard class and function decoration if dynamic load library linking
// is desired. BOOST_DECL supplies that decoration, defaulting to a nul string
// so that it is harmless when not required. Boost does not encourage the use
// of BOOST_DECL - it is non-standard and to be avoided if practical to do so.
// BOOST_DECL_EXPORTS: User defined, BOOST_DECL_EXPORTS causes BOOST_DECL to
// be defined as __declspec(dllexport) rather than __declspec(dllimport).
// is desired. BOOST_DECL supplies that decoration. Boost does not require
// use of BOOST_DECL - it is non-standard and to be avoided if practical to do
// so. Even compilers requiring it for DLL's only require it in certain cases.
//
// BOOST_DECL_EXPORTS: User defined, usually via command line or IDE,
// it causes BOOST_DECL to be defined as __declspec(dllexport).
//
// BOOST_DECL_IMPORTS: User defined, usually via command line or IDE,
// it causes BOOST_DECL to be defined as __declspec(dllimport).
//
// If neither BOOST_DECL_EXPORTS nor BOOST_DECL_IMPORTS is defined, or if
// the compiler does not require __declspec() decoration, BOOST_DECL is
// defined as a null string.
// BOOST_MSVC6_MEMBER_TEMPLATES: Microsoft Visual C++ 6.0 has enough member
// template idiosyncrasies (being polite) that BOOST_NO_MEMBER_TEMPLATES is
@@ -138,9 +182,14 @@
// BOOST_NO_SLIST: The C++ implementation does not provide the slist class.
// BOOST_NO_STRINGSTREAM: The C++ implementation does not provide the <sstream> header.
// BOOST_NO_HASH: The C++ implementation does not provide the hash_set
// or hash_map classes.
// BOOST_STD_EXTENSION_NAMESPACE: The name of the namespace in which the slist,
// hash_set and/or hash_map templates are defined in this implementation (if any).
// BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS: The standard library does not provide
// templated iterator constructors for its containers.
@@ -154,23 +203,55 @@
// BOOST_NO_STD_ALLOCATOR: The C++ standard library does not provide
// a standards conforming std::allocator.
// BOOST_NO_STD_MIN_MAX: The C++ standard library does not provide
// the min() and max() template functions that should be in <algorithm>.
// Common compiler front-ends precede all compiler checks ------------------//
// Edison Design Group front-ends
# if defined(__EDG_VERSION__)
# if __EDG_VERSION__ <= 241
# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
# endif
# endif
// Compiler-specific checks -------------------------------------------------//
// Compilers are listed in alphabetic order (except VC++ last - see below)---//
// GNU CC (also known as GCC and G++) --------------------------------------//
# if defined __GNUC__
# if __GNUC__ == 2 && __GNUC_MINOR__ == 91
// egcs 1.1 won't parse smart_ptr.hpp without this:
# define BOOST_NO_AUTO_PTR
# endif
# if __GNUC__ == 2 && __GNUC_MINOR__ <= 95
# include <iterator> // not sure this is the right way to do this -JGS
# if !defined(_CXXRT_STD) && !defined(__SGI_STL) // need to ask Dietmar about this -JGS
# define BOOST_NO_STD_ITERATOR
# define BOOST_NO_LIMITS
# endif
# if !defined(_CXXRT_STD) && !defined(__SGI_STL_OWN_IOSTREAMS)
# define BOOST_NO_STRINGSTREAM
# endif
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
# define BOOST_NO_OPERATORS_IN_NAMESPACE
# endif
# if __GNUC__ == 2 && __GNUC_MINOR__ <= 8
# define BOOST_NO_MEMBER_TEMPLATES
# endif
# if (__GNUC__ == 2 && __GNUC_MINOR__ > 95) || __GNUC__ > 2
// upcoming gcc 3.0
# include <iterator>
# if defined(__GLIBCPP__)
// The new GNU C++ library has slist, hash_map, hash_set headers
// in <ext/*>, but client code assumes they're in <*> --- Jens M.
# define BOOST_NO_SLIST
# define BOOST_NO_HASH
# endif
# endif
// Kai C++ ------------------------------------------------------------------//
@@ -178,6 +259,21 @@
# define BOOST_NO_SLIST
# define BOOST_NO_HASH
# if __KCC_VERSION <= 4001
// at least on Sun, the contents of <cwchar> is not in namespace std
# define BOOST_NO_STDC_NAMESPACE
# endif
// SGI MIPSpro C++ --------------------------------------------------------
#elif defined __sgi
// Compaq Tru64 Unix cxx ---------------------------------------------------
#elif defined __DECCXX
# define BOOST_NO_SLIST
# define BOOST_NO_HASH
// Greenhills C++ -----------------------------------------------------------//
#elif defined __ghs
@@ -187,7 +283,12 @@
// Borland ------------------------------------------------------------------//
#elif defined __BORLANDC__
# define BOOST_NO_SLIST
# define BOOST_NO_HASH
// pull in standard library version:
# include <memory>
# if __BORLANDC__ <= 0x0551
# define BOOST_NO_INTEGRAL_INT64_T
# define BOOST_NO_PRIVATE_IN_AGGREGATE
# endif
# if __BORLANDC__ <= 0x0550
@@ -200,10 +301,23 @@
# endif
# endif
# if defined BOOST_DECL_EXPORTS
# if defined BOOST_DECL_IMPORTS
# error Not valid to define both BOOST_DECL_EXPORTS and BOOST_DECL_IMPORTS
# endif
# define BOOST_DECL __declspec(dllexport)
# else
# elif defined BOOST_DECL_IMPORTS
# define BOOST_DECL __declspec(dllimport)
# else
# define BOOST_DECL
# endif
#if (__BORLANDC__ == 0x550) || (__BORLANDC__ == 0x551)
// <climits> is partly broken, some macos define symbols that are really in
// namespace std, so you end up having to use illegal constructs like
// std::DBL_MAX, as a fix we'll just include float.h and have done with:
#include <float.h>
#endif
# define BOOST_NO_CV_SPECIALIZATIONS
# define BOOST_NO_CV_VOID_SPECIALIZATIONS
// Intel -------------------------------------------------------------------//
@@ -221,30 +335,44 @@
# define BOOST_NO_HASH
# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
# define BOOST_NO_STD_ALLOCATOR
# define BOOST_NO_STD_MIN_MAX
# endif
# define BOOST_NO_INTRINSIC_WCHAR_T // tentative addition - required for VC6 compatibility? (added by JM 19 Feb 2001)
// Metrowerks CodeWarrior --------------------------------------------------//
# elif defined __MWERKS__
# if __MWERKS__ <= 0x4000
# if __MWERKS__ <= 0x2400 // 6.0
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
# endif
# if __MWERKS__ <= 0x2301
# if __MWERKS__ <= 0x2301 // 5.3?
# define BOOST_NO_POINTER_TO_MEMBER_CONST
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
# endif
# if __MWERKS__ >= 0x2300
# define BOOST_SYSTEM_HAS_STDINT_H
# endif
# if defined BOOST_DECL_EXPORTS
# if defined BOOST_DECL_IMPORTS
# error Not valid to define both BOOST_DECL_EXPORTS and BOOST_DECL_IMPORTS
# endif
# define BOOST_DECL __declspec(dllexport)
# else
# elif defined BOOST_DECL_IMPORTS
# define BOOST_DECL __declspec(dllimport)
# else
# define BOOST_DECL
# endif
# define BOOST_STD_EXTENSION_NAMESPACE Metrowerks
// Sun Workshop Compiler C++ ------------------------------------------------//
# elif defined __SUNPRO_CC
# if __SUNPRO_CC <= 0x520
# define BOOST_NO_SLIST
# define BOOST_NO_HASH
# define BOOST_NO_STD_ITERATOR_TRAITS
# endif
# if __SUNPRO_CC <= 0x500
# define BOOST_NO_MEMBER_TEMPLATES
# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
@@ -265,7 +393,9 @@
# if _MSC_VER <= 1200 // 1200 == VC++ 6.0
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
# define BOOST_NO_PRIVATE_IN_AGGREGATE
# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
# define BOOST_NO_INTEGRAL_INT64_T
# define BOOST_NO_INTRINSIC_WCHAR_T
// VC++ 6.0 has member templates but they have numerous problems including
@@ -289,8 +419,20 @@
# define BOOST_NO_HASH
# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
# define BOOST_NO_STD_ALLOCATOR
# ifndef _CPPLIB_VER
// Updated Dinkum library defines this, and provides
// its own min and max definitions.
# define BOOST_NO_STD_MIN_MAX
# undef min
# undef max
# endif
# ifndef NOMINMAX
// avoid spurious NOMINMAX redefinition warning
# define NOMINMAX
# endif
# endif
# define BOOST_NO_STD_ITERATOR_TRAITS
# define BOOST_NO_CV_VOID_SPECIALIZATIONS
// Make sure at least one standard library header is included so that library
@@ -300,16 +442,21 @@
// Determine if the standard library implementation is already pulling names
// into std. STLport defines the following if so. (Ed Brey 5 Jun 00)
# ifndef __STL_IMPORT_VENDOR_CSTD
# if !defined( __STL_IMPORT_VENDOR_CSTD ) || defined( __STL_NO_CSTD_FUNCTION_IMPORTS )
# define BOOST_NO_STDC_NAMESPACE
# endif
# endif
# if defined BOOST_DECL_EXPORTS
# if defined BOOST_DECL_IMPORTS
# error Not valid to define both BOOST_DECL_EXPORTS and BOOST_DECL_IMPORTS
# endif
# define BOOST_DECL __declspec(dllexport)
# else
# elif defined BOOST_DECL_IMPORTS
# define BOOST_DECL __declspec(dllimport)
# else
# define BOOST_DECL
# endif
# endif // Microsoft (excluding Intel/EDG frontend)
@@ -320,6 +467,21 @@
// end of compiler specific portion ----------------------------------------//
#if defined(BOOST_NO_LIMITS) || (defined(_RWSTD_VER) && defined(__BORLANDC__) && _RWSTD_VER < 0x020300) || (defined(__SGI_STL_PORT) && __SGI_STL_PORT <= 0x410 && __STL_STATIC_CONST_INIT_BUG)
// STLPort 4.0 doesn't define the static constants in numeric_limits<> so that they
// can be used at compile time if the compiler bug indicated by
// __STL_STATIC_CONST_INIT_BUG is present.
// Rogue wave STL (C++ Builder) also has broken numeric_limits
// with default template defining members out of line.
// However, Compaq C++ also uses RogueWave (version 0x0203) and it's ok.
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
#endif
#ifndef BOOST_STD_EXTENSION_NAMESPACE
# define BOOST_STD_EXTENSION_NAMESPACE std
#endif
// Check for old name "BOOST_NMEMBER_TEMPLATES" for compatibility -----------//
// Don't use BOOST_NMEMBER_TEMPLATES. It is deprecated and will be removed soon.
#if defined( BOOST_NMEMBER_TEMPLATES ) && !defined( BOOST_NO_MEMBER_TEMPLATES )
@@ -342,5 +504,39 @@
// using ::wchar_t; removed since wchar_t is a C++ built-in type (Ed Brey)
# endif
#ifdef BOOST_NO_STD_MIN_MAX
namespace std {
template <class _Tp>
inline const _Tp& min(const _Tp& __a, const _Tp& __b) {
return __b < __a ? __b : __a;
}
template <class _Tp>
inline const _Tp& max(const _Tp& __a, const _Tp& __b) {
return __a < __b ? __b : __a;
}
#ifdef BOOST_MSVC
inline long min(long __a, long __b) {
return __b < __a ? __b : __a;
}
inline long max(long __a, long __b) {
return __a < __b ? __b : __a;
}
#endif
}
#endif
// BOOST_STATIC_CONSTANT workaround --------------------------------------- //
// On compilers which don't allow in-class initialization of static integral
// constant members, we must use enums as a workaround if we want the constants
// to be available at compile-time. This macro gives us a convenient way to
// declare such constants.
#ifdef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
# define BOOST_STATIC_CONSTANT(type, assignment) enum { assignment }
#else
# define BOOST_STATIC_CONSTANT(type, assignment) static const type assignment
#endif
#endif // BOOST_CONFIG_HPP

View File

@@ -13,8 +13,8 @@
<tr>
<td bgcolor="#FFFFFF"><img src="../../c++boost.gif" alt="c++boost.gif (8819 bytes)" width="277" height="86"></td>
<td><a href="../../index.htm"><font face="Arial" color="#FFFFFF"><big>Home</big></font></a></td>
<td><a href="../../libraries.htm"><font face="Arial" color="#FFFFFF"><big>Libraries</big></font></a></td>
<td><a href="../../people.htm"><font face="Arial" color="#FFFFFF"><big>People</big></font></a></td>
<td><a href="../libraries.htm"><font face="Arial" color="#FFFFFF"><big>Libraries</big></font></a></td>
<td><a href="../../people/people.htm"><font face="Arial" color="#FFFFFF"><big>People</big></font></a></td>
<td><a href="../../more/faq.htm"><font face="Arial" color="#FFFFFF"><big>FAQ</big></font></a></td>
<td><a href="../../more/index.htm"><font face="Arial" color="#FFFFFF"><big>More</big></font></a></td>
</tr>
@@ -80,7 +80,7 @@ be self documenting.</p>
<p>The <a href="config_test.cpp">config_test.cpp</a> program can be used to
verify which #defines are in effect for your compiler.</p>
<hr>
<p>Revised <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %b %Y" startspan -->23 Jun 2000<!--webbot bot="Timestamp" endspan i-checksum="15048" --></p>
<p>Revised <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %b %Y" startspan -->10 Nov 2000<!--webbot bot="Timestamp" endspan i-checksum="15233" --></p>
</body>