From 113cded49d6dfb6b0f394848c9a87a7a76eaa2bf Mon Sep 17 00:00:00 2001 From: John Maddock Date: Thu, 18 Jul 2002 11:06:42 +0000 Subject: [PATCH] Added new libcomo.hpp config header. Added new config macros: BOOST_NO_STD_WSTREAMBUF BOOST_NO_LONG_LONG_NUMERIC_LIMITS BOOST_NO_MS_INT64_NUMERIC_LIMITS [SVN r14512] --- include/boost/config/select_stdlib_config.hpp | 4 +++ include/boost/config/stdlib/dinkumware.hpp | 1 + include/boost/config/stdlib/libcomo.hpp | 33 +++++++++++++++++++ include/boost/config/stdlib/roguewave.hpp | 7 ++++ include/boost/config/suffix.hpp | 26 +++++++++++++++ 5 files changed, 71 insertions(+) create mode 100644 include/boost/config/stdlib/libcomo.hpp diff --git a/include/boost/config/select_stdlib_config.hpp b/include/boost/config/select_stdlib_config.hpp index a3fa2ca5..dd24b777 100644 --- a/include/boost/config/select_stdlib_config.hpp +++ b/include/boost/config/select_stdlib_config.hpp @@ -23,6 +23,10 @@ // can end up detecting that first rather than STLport: # define BOOST_STDLIB_CONFIG "boost/config/stdlib/stlport.hpp" +#elif defined(__LIBCOMO__) +// Commeau STL: +#define BOOST_STDLIB_CONFIG "boost/config/stdlib/libcomo.hpp" + #elif defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER) // Rogue Wave library: # define BOOST_STDLIB_CONFIG "boost/config/stdlib/roguewave.hpp" diff --git a/include/boost/config/stdlib/dinkumware.hpp b/include/boost/config/stdlib/dinkumware.hpp index 5b13f7ea..8d81d09e 100644 --- a/include/boost/config/stdlib/dinkumware.hpp +++ b/include/boost/config/stdlib/dinkumware.hpp @@ -48,6 +48,7 @@ # define BOOST_NO_STD_MIN_MAX # undef min # undef max +# define BOOST_NO_MS_INT64_NUMERIC_LIMITS # endif # ifndef NOMINMAX // avoid spurious NOMINMAX redefinition warning diff --git a/include/boost/config/stdlib/libcomo.hpp b/include/boost/config/stdlib/libcomo.hpp new file mode 100644 index 00000000..e60e0735 --- /dev/null +++ b/include/boost/config/stdlib/libcomo.hpp @@ -0,0 +1,33 @@ +// (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and +// distribute this software is granted provided this copyright notice appears +// in all copies. This software is provided "as is" without express or implied +// warranty, and with no claim as to its suitability for any purpose. + +// See http://www.boost.org for most recent version. + +// Commeau STL: + +#if !defined(__LIBCOMO__) +# include +# if !defined(__LIBCOMO__) +# error "This is not the Comeau STL!" +# endif +#endif + +// +// std::streambuf is non-standard: +// +#if __LIBCOMO_VERSION__ <= 22 +# define BOOST_NO_STD_WSTREAMBUF +#endif + +// +// Intrinsic type_traits support. +// The SGI STL has it's own __type_traits class, which +// has intrinsic compiler support with SGI's compilers. +// Whatever map SGI style type traits to boost equivalents: +// +#define BOOST_HAS_SGI_TYPE_TRAITS + +#define BOOST_STDLIB "Commeau standard library" BOOST_STRINGIZE(__LIBCOMO_VERSION__) + diff --git a/include/boost/config/stdlib/roguewave.hpp b/include/boost/config/stdlib/roguewave.hpp index 07e37292..7edea216 100644 --- a/include/boost/config/stdlib/roguewave.hpp +++ b/include/boost/config/stdlib/roguewave.hpp @@ -39,6 +39,13 @@ # define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS #endif +// +// Borland version of numeric_limits lacks __int64 specialisation: +// +#ifdef __BORLANDC__ +# define BOOST_NO_MS_INT64_NUMERIC_LIMITS +#endif + // // No std::iterator if it can't figure out default template args: // diff --git a/include/boost/config/suffix.hpp b/include/boost/config/suffix.hpp index 1e74088b..242a244d 100644 --- a/include/boost/config/suffix.hpp +++ b/include/boost/config/suffix.hpp @@ -67,8 +67,26 @@ # if defined(BOOST_NO_LIMITS) \ && !defined(BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS) # define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS +# define BOOST_NO_MS_INT64_NUMERIC_LIMITS +# define BOOST_NO_LONG_LONG_NUMERIC_LIMITS # endif +// +// if there is no long long then there is no specialisation +// for numeric_limits either: +// +#if !defined(BOOST_HAS_LONG_LONG) && !defined(BOOST_NO_LONG_LONG_NUMERIC_LIMITS) +# define BOOST_NO_LONG_LONG_NUMERIC_LIMITS +#endif + +// +// if there is no __int64 then there is no specialisation +// for numeric_limits<__int64> either: +// +#if !defined(BOOST_HAS_MS_INT64) && !defined(BOOST_NO_MS_INT64_NUMERIC_LIMITS) +# define BOOST_NO_MS_INT64_NUMERIC_LIMITS +#endif + // // if member templates are supported then so is the // VC6 subset of member templates: @@ -128,6 +146,13 @@ # define BOOST_NO_STD_MESSAGES # endif +// +// We can't have a working std::wstreambuf if there is no std::locale: +// +# if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_WSTREAMBUF) +# define BOOST_NO_STD_WSTREAMBUF +# endif + // // We can't have a if there is no : // @@ -345,3 +370,4 @@ namespace std { #endif +