1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/os/ossrv/ossrv_pub/boost_apis/boost/config/stdlib/roguewave.hpp Fri Jun 15 03:10:57 2012 +0200
1.3 @@ -0,0 +1,127 @@
1.4 +// (C) Copyright John Maddock 2001 - 2003.
1.5 +// (C) Copyright Jens Maurer 2001.
1.6 +// (C) Copyright David Abrahams 2003.
1.7 +// Use, modification and distribution are subject to the
1.8 +// Boost Software License, Version 1.0. (See accompanying file
1.9 +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
1.10 +
1.11 +// See http://www.boost.org for most recent version.
1.12 +
1.13 +// Rogue Wave std lib:
1.14 +
1.15 +#if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)
1.16 +# include <boost/config/no_tr1/utility.hpp>
1.17 +# if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)
1.18 +# error This is not the Rogue Wave standard library
1.19 +# endif
1.20 +#endif
1.21 +//
1.22 +// figure out a consistent version number:
1.23 +//
1.24 +#ifndef _RWSTD_VER
1.25 +# define BOOST_RWSTD_VER 0x010000
1.26 +#elif _RWSTD_VER < 0x010000
1.27 +# define BOOST_RWSTD_VER (_RWSTD_VER << 8)
1.28 +#else
1.29 +# define BOOST_RWSTD_VER _RWSTD_VER
1.30 +#endif
1.31 +
1.32 +#ifndef _RWSTD_VER
1.33 +# define BOOST_STDLIB "Rogue Wave standard library version (Unknown version)"
1.34 +#else
1.35 +# define BOOST_STDLIB "Rogue Wave standard library version " BOOST_STRINGIZE(_RWSTD_VER)
1.36 +#endif
1.37 +
1.38 +//
1.39 +// Prior to version 2.2.0 the primary template for std::numeric_limits
1.40 +// does not have compile time constants, even though specializations of that
1.41 +// template do:
1.42 +//
1.43 +#if BOOST_RWSTD_VER < 0x020200
1.44 +# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
1.45 +#endif
1.46 +
1.47 +// Sun CC 5.5 patch 113817-07 adds long long specialization, but does not change the
1.48 +// library version number (http://sunsolve6.sun.com/search/document.do?assetkey=1-21-113817):
1.49 +#if BOOST_RWSTD_VER <= 0x020101 && (!defined(__SUNPRO_CC) || (__SUNPRO_CC < 0x550))
1.50 +# define BOOST_NO_LONG_LONG_NUMERIC_LIMITS
1.51 +# endif
1.52 +
1.53 +//
1.54 +// Borland version of numeric_limits lacks __int64 specialisation:
1.55 +//
1.56 +#ifdef __BORLANDC__
1.57 +# define BOOST_NO_MS_INT64_NUMERIC_LIMITS
1.58 +#endif
1.59 +
1.60 +//
1.61 +// No std::iterator if it can't figure out default template args:
1.62 +//
1.63 +#if defined(_RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES) || defined(RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES) || (BOOST_RWSTD_VER < 0x020000)
1.64 +# define BOOST_NO_STD_ITERATOR
1.65 +#endif
1.66 +
1.67 +//
1.68 +// No iterator traits without partial specialization:
1.69 +//
1.70 +#if defined(_RWSTD_NO_CLASS_PARTIAL_SPEC) || defined(RWSTD_NO_CLASS_PARTIAL_SPEC)
1.71 +# define BOOST_NO_STD_ITERATOR_TRAITS
1.72 +#endif
1.73 +
1.74 +//
1.75 +// Prior to version 2.0, std::auto_ptr was buggy, and there were no
1.76 +// new-style iostreams, and no conformant std::allocator:
1.77 +//
1.78 +#if (BOOST_RWSTD_VER < 0x020000)
1.79 +# define BOOST_NO_AUTO_PTR
1.80 +# define BOOST_NO_STRINGSTREAM
1.81 +# define BOOST_NO_STD_ALLOCATOR
1.82 +# define BOOST_NO_STD_LOCALE
1.83 +#endif
1.84 +
1.85 +//
1.86 +// No template iterator constructors without member template support:
1.87 +//
1.88 +#if defined(RWSTD_NO_MEMBER_TEMPLATES) || defined(_RWSTD_NO_MEMBER_TEMPLATES)
1.89 +# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
1.90 +#endif
1.91 +
1.92 +//
1.93 +// RW defines _RWSTD_ALLOCATOR if the allocator is conformant and in use
1.94 +// (the or _HPACC_ part is a hack - the library seems to define _RWSTD_ALLOCATOR
1.95 +// on HP aCC systems even though the allocator is in fact broken):
1.96 +//
1.97 +#if !defined(_RWSTD_ALLOCATOR) || (defined(__HP_aCC) && __HP_aCC <= 33100)
1.98 +# define BOOST_NO_STD_ALLOCATOR
1.99 +#endif
1.100 +
1.101 +//
1.102 +// If we have a std::locale, we still may not have std::use_facet:
1.103 +//
1.104 +#if defined(_RWSTD_NO_TEMPLATE_ON_RETURN_TYPE) && !defined(BOOST_NO_STD_LOCALE)
1.105 +# define BOOST_NO_STD_USE_FACET
1.106 +# define BOOST_HAS_TWO_ARG_USE_FACET
1.107 +#endif
1.108 +
1.109 +//
1.110 +// There's no std::distance prior to version 2, or without
1.111 +// partial specialization support:
1.112 +//
1.113 +#if (BOOST_RWSTD_VER < 0x020000) || defined(_RWSTD_NO_CLASS_PARTIAL_SPEC)
1.114 + #define BOOST_NO_STD_DISTANCE
1.115 +#endif
1.116 +
1.117 +//
1.118 +// Some versions of the rogue wave library don't have assignable
1.119 +// OutputIterators:
1.120 +//
1.121 +#if BOOST_RWSTD_VER < 0x020100
1.122 +# define BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
1.123 +#endif
1.124 +
1.125 +//
1.126 +// Disable BOOST_HAS_LONG_LONG when the library has no support for it.
1.127 +//
1.128 +#if !defined(_RWSTD_LONG_LONG) && defined(BOOST_HAS_LONG_LONG)
1.129 +# undef BOOST_HAS_LONG_LONG
1.130 +#endif