os/ossrv/ossrv_pub/boost_apis/boost/config/stdlib/sgi.hpp
author sl@SLION-WIN7.fritz.box
Fri, 15 Jun 2012 03:10:57 +0200
changeset 0 bde4ae8d615e
permissions -rw-r--r--
First public contribution.
sl@0
     1
//  (C) Copyright John Maddock 2001 - 2003. 
sl@0
     2
//  (C) Copyright Darin Adler 2001. 
sl@0
     3
//  (C) Copyright Jens Maurer 2001 - 2003. 
sl@0
     4
//  Use, modification and distribution are subject to the 
sl@0
     5
//  Boost Software License, Version 1.0. (See accompanying file 
sl@0
     6
//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
sl@0
     7
sl@0
     8
//  See http://www.boost.org for most recent version.
sl@0
     9
sl@0
    10
//  generic SGI STL:
sl@0
    11
sl@0
    12
#if !defined(__STL_CONFIG_H)
sl@0
    13
#  include <boost/config/no_tr1/utility.hpp>
sl@0
    14
#  if !defined(__STL_CONFIG_H)
sl@0
    15
#      error "This is not the SGI STL!"
sl@0
    16
#  endif
sl@0
    17
#endif
sl@0
    18
sl@0
    19
//
sl@0
    20
// No std::iterator traits without partial specialisation:
sl@0
    21
//
sl@0
    22
#if !defined(__STL_CLASS_PARTIAL_SPECIALIZATION)
sl@0
    23
#  define BOOST_NO_STD_ITERATOR_TRAITS
sl@0
    24
#endif
sl@0
    25
sl@0
    26
//
sl@0
    27
// No std::stringstream with gcc < 3
sl@0
    28
//
sl@0
    29
#if defined(__GNUC__) && (__GNUC__ < 3) && \
sl@0
    30
     ((__GNUC_MINOR__ < 95) || (__GNUC_MINOR__ == 96)) && \
sl@0
    31
     !defined(__STL_USE_NEW_IOSTREAMS) || \
sl@0
    32
   defined(__APPLE_CC__)
sl@0
    33
   // Note that we only set this for GNU C++ prior to 2.95 since the
sl@0
    34
   // latest patches for that release do contain a minimal <sstream>
sl@0
    35
   // If you are running a 2.95 release prior to 2.95.3 then this will need
sl@0
    36
   // setting, but there is no way to detect that automatically (other
sl@0
    37
   // than by running the configure script).
sl@0
    38
   // Also, the unofficial GNU C++ 2.96 included in RedHat 7.1 doesn't
sl@0
    39
   // have <sstream>.
sl@0
    40
#  define BOOST_NO_STRINGSTREAM
sl@0
    41
#endif
sl@0
    42
sl@0
    43
//
sl@0
    44
// Assume no std::locale without own iostreams (this may be an
sl@0
    45
// incorrect assumption in some cases):
sl@0
    46
//
sl@0
    47
#if !defined(__SGI_STL_OWN_IOSTREAMS) && !defined(__STL_USE_NEW_IOSTREAMS)
sl@0
    48
#  define BOOST_NO_STD_LOCALE
sl@0
    49
#endif
sl@0
    50
sl@0
    51
//
sl@0
    52
// Original native SGI streams have non-standard std::messages facet:
sl@0
    53
//
sl@0
    54
#if defined(__sgi) && (_COMPILER_VERSION <= 650) && !defined(__SGI_STL_OWN_IOSTREAMS)
sl@0
    55
#  define BOOST_NO_STD_LOCALE
sl@0
    56
#endif
sl@0
    57
sl@0
    58
//
sl@0
    59
// SGI's new iostreams have missing "const" in messages<>::open
sl@0
    60
//
sl@0
    61
#if defined(__sgi) && (_COMPILER_VERSION <= 740) && defined(__STL_USE_NEW_IOSTREAMS)
sl@0
    62
#  define BOOST_NO_STD_MESSAGES
sl@0
    63
#endif
sl@0
    64
sl@0
    65
//
sl@0
    66
// No template iterator constructors, or std::allocator
sl@0
    67
// without member templates:
sl@0
    68
//
sl@0
    69
#if !defined(__STL_MEMBER_TEMPLATES)
sl@0
    70
#  define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
sl@0
    71
#  define BOOST_NO_STD_ALLOCATOR
sl@0
    72
#endif
sl@0
    73
sl@0
    74
//
sl@0
    75
// We always have SGI style hash_set, hash_map, and slist:
sl@0
    76
//
sl@0
    77
#define BOOST_HAS_HASH
sl@0
    78
#define BOOST_HAS_SLIST
sl@0
    79
sl@0
    80
//
sl@0
    81
// If this is GNU libstdc++2, then no <limits> and no std::wstring:
sl@0
    82
//
sl@0
    83
#if (defined(__GNUC__) && (__GNUC__ < 3))
sl@0
    84
#  include <string>
sl@0
    85
#  if defined(__BASTRING__)
sl@0
    86
#     define BOOST_NO_LIMITS
sl@0
    87
// Note: <boost/limits.hpp> will provide compile-time constants
sl@0
    88
#     undef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
sl@0
    89
#     define BOOST_NO_STD_WSTRING
sl@0
    90
#  endif
sl@0
    91
#endif
sl@0
    92
sl@0
    93
//
sl@0
    94
// There is no standard iterator unless we have namespace support:
sl@0
    95
//
sl@0
    96
#if !defined(__STL_USE_NAMESPACES)
sl@0
    97
#  define BOOST_NO_STD_ITERATOR
sl@0
    98
#endif
sl@0
    99
sl@0
   100
//
sl@0
   101
// Intrinsic type_traits support.
sl@0
   102
// The SGI STL has it's own __type_traits class, which
sl@0
   103
// has intrinsic compiler support with SGI's compilers.
sl@0
   104
// Whatever map SGI style type traits to boost equivalents:
sl@0
   105
//
sl@0
   106
#define BOOST_HAS_SGI_TYPE_TRAITS
sl@0
   107
sl@0
   108
#define BOOST_STDLIB "SGI standard library"
sl@0
   109
sl@0
   110
sl@0
   111