imgtools/imglib/boostlibrary/boost/tr1/detail/config.hpp
changeset 600 6d08f4a05d93
equal deleted inserted replaced
599:fa7a3cc6effd 600:6d08f4a05d93
       
     1 //  (C) Copyright John Maddock 2005-7.
       
     2 //  Use, modification and distribution are subject to the
       
     3 //  Boost Software License, Version 1.0. (See accompanying file
       
     4 //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       
     5 
       
     6 #ifndef BOOST_TR1_DETAIL_CONFIG_HPP_INCLUDED
       
     7 #  define BOOST_TR1_DETAIL_CONFIG_HPP_INCLUDED
       
     8 
       
     9 #include <cstddef>
       
    10 
       
    11 #if defined(__GNUC__) || (!defined(_AIX) && defined(__IBMCPP__)  && (__IBMCPP__ >= 800)) 
       
    12 #if !defined(BOOST_HAS_INCLUDE_NEXT)
       
    13 #  define BOOST_HAS_INCLUDE_NEXT
       
    14 #endif
       
    15 // Need to find out if we're using GLIBC:
       
    16 #ifdef BOOST_TR1_UTILITY_INCLUDED
       
    17 // Oops we're in a recursive include path!!
       
    18 // Need to include utility, or some std lib header,
       
    19 // but *not* via <utility> or <boost/config/no_tr1/utility.hpp>
       
    20 #  ifndef BOOST_TR1_NO_RECURSION
       
    21 #     define BOOST_TR1_NO_RECURSION
       
    22 #     define BOOST_TR1_NO_CONFIG_RECURSION
       
    23 #  endif
       
    24 #  if defined(BOOST_HAS_INCLUDE_NEXT) && !defined(BOOST_TR1_DISABLE_INCLUDE_NEXT)
       
    25 #     include_next <utility>
       
    26 #  else
       
    27 #     include BOOST_TR1_STD_HEADER(utility)
       
    28 #  endif
       
    29 #  ifdef BOOST_TR1_NO_CONFIG_RECURSION
       
    30 #     undef BOOST_TR1_NO_CONFIG_RECURSION
       
    31 #     undef BOOST_TR1_NO_RECURSION
       
    32 #  endif
       
    33 #else
       
    34 #include <boost/config/no_tr1/utility.hpp>
       
    35 #endif
       
    36 #endif
       
    37 
       
    38 #if defined(__GLIBCXX__) && !defined(BOOST_TR1_PATH)
       
    39 #  define BOOST_TR1_PATH(name) tr1/name
       
    40 #endif
       
    41 #if !defined(BOOST_TR1_PATH)
       
    42 #  define BOOST_TR1_PATH(name) name
       
    43 #endif
       
    44 
       
    45 #define BOOST_TR1_HEADER(name) <BOOST_TR1_PATH(name)>
       
    46 
       
    47 // Can't use BOOST_WORKAROUND here, it leads to recursive includes:
       
    48 #if (defined(__BORLANDC__) && (__BORLANDC__ <= 0x600)) || (defined(_MSC_VER) && (_MSC_VER < 1310))
       
    49 #  define BOOST_TR1_USE_OLD_TUPLE
       
    50 #endif
       
    51 
       
    52 #ifdef __IBMCPP_TR1__
       
    53    // turn on support for everything:
       
    54 #  define BOOST_HAS_TR1
       
    55 #endif
       
    56 
       
    57 #ifdef __GXX_EXPERIMENTAL_CXX0X__
       
    58 #  define BOOST_HAS_TR1_COMPLEX_OVERLOADS
       
    59 #  define BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG
       
    60 #endif
       
    61 
       
    62 #ifdef BOOST_HAS_TR1
       
    63    // turn on support for everything:
       
    64 #  define BOOST_HAS_TR1_ARRAY
       
    65 #  define BOOST_HAS_TR1_COMPLEX_OVERLOADS
       
    66 #  define BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG
       
    67 #  define BOOST_HAS_TR1_REFERENCE_WRAPPER
       
    68 #  define BOOST_HAS_TR1_RESULT_OF
       
    69 #  define BOOST_HAS_TR1_MEM_FN
       
    70 #  define BOOST_HAS_TR1_BIND
       
    71 #  define BOOST_HAS_TR1_FUNCTION
       
    72 #  define BOOST_HAS_TR1_HASH
       
    73 #  define BOOST_HAS_TR1_SHARED_PTR
       
    74 #  define BOOST_HAS_TR1_RANDOM
       
    75 #  define BOOST_HAS_TR1_REGEX
       
    76 #  define BOOST_HAS_TR1_TUPLE
       
    77 #  define BOOST_HAS_TR1_TYPE_TRAITS
       
    78 #  define BOOST_HAS_TR1_UTILITY
       
    79 #  define BOOST_HAS_TR1_UNORDERED_MAP
       
    80 #  define BOOST_HAS_TR1_UNORDERED_SET
       
    81 #  define BOOST_HAS_TR1_CMATH
       
    82 
       
    83 #endif
       
    84 
       
    85 #if defined(__MWERKS__) && (__MWERKS__ >= 0x3205)
       
    86 //
       
    87 // Very preliminary MWCW support, may not be right:
       
    88 //
       
    89 #  define BOOST_HAS_TR1_SHARED_PTR
       
    90 #  define BOOST_HAS_TR1_REFERENCE_WRAPPER
       
    91 #  define BOOST_HAS_TR1_FUNCTION
       
    92 #  define BOOST_HAS_TR1_TUPLE
       
    93 #  define BOOST_HAS_TR1_RESULT_OF
       
    94 #endif
       
    95 
       
    96 #ifdef BOOST_HAS_GCC_TR1
       
    97    // turn on support for everything in gcc 4.0.x:
       
    98 #  define BOOST_HAS_TR1_ARRAY
       
    99 #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 403
       
   100 //#  define BOOST_HAS_TR1_COMPLEX_OVERLOADS
       
   101 #  define BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG
       
   102 #endif
       
   103 #  define BOOST_HAS_TR1_REFERENCE_WRAPPER
       
   104 #  define BOOST_HAS_TR1_RESULT_OF
       
   105 #  define BOOST_HAS_TR1_MEM_FN
       
   106 #  define BOOST_HAS_TR1_BIND
       
   107 #  define BOOST_HAS_TR1_FUNCTION
       
   108 #  define BOOST_HAS_TR1_HASH
       
   109 #  define BOOST_HAS_TR1_SHARED_PTR
       
   110 #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 403
       
   111 #  define BOOST_HAS_TR1_RANDOM
       
   112 //#  define BOOST_HAS_TR1_REGEX
       
   113 #ifdef _GLIBCXX_USE_C99_MATH_TR1
       
   114 #  define BOOST_HAS_TR1_CMATH
       
   115 #endif
       
   116 #endif
       
   117 #  define BOOST_HAS_TR1_TUPLE
       
   118 #  define BOOST_HAS_TR1_TYPE_TRAITS
       
   119 #  define BOOST_HAS_TR1_UTILITY
       
   120 #  define BOOST_HAS_TR1_UNORDERED_MAP
       
   121 #  define BOOST_HAS_TR1_UNORDERED_SET
       
   122 
       
   123 #endif
       
   124 
       
   125 #if defined(_MSC_VER) && (_MSC_VER >= 1500) \
       
   126    && defined(_MSC_FULL_VER) && \
       
   127    !defined(__SGI_STL_PORT) && \
       
   128    !defined(_STLPORT_VERSION) && \
       
   129    !defined(_RWSTD_VER_STR) && \
       
   130    !defined(_RWSTD_VER)
       
   131 //
       
   132 // MSVC-9.0 defines a not-quite TR1 conforming hash
       
   133 // function object in <functional>, so we must define
       
   134 // this here, in addition the feature pack for VC9
       
   135 // provides a more or less full TR1 implementation:
       
   136 //
       
   137 #if defined(_HAS_TR1) && (_HAS_TR1 + 0)
       
   138 #  define BOOST_HAS_TR1_ARRAY
       
   139 #  define BOOST_HAS_TR1_REFERENCE_WRAPPER
       
   140 #  define BOOST_HAS_TR1_RESULT_OF
       
   141 #  define BOOST_HAS_TR1_MEM_FN
       
   142 #  define BOOST_HAS_TR1_BIND
       
   143 #  define BOOST_HAS_TR1_FUNCTION
       
   144 #  define BOOST_HAS_TR1_HASH
       
   145 #  define BOOST_HAS_TR1_SHARED_PTR
       
   146 #  define BOOST_HAS_TR1_RANDOM
       
   147 #  define BOOST_HAS_TR1_REGEX
       
   148 #  define BOOST_HAS_TR1_TUPLE
       
   149 #  define BOOST_HAS_TR1_TYPE_TRAITS
       
   150 #  define BOOST_HAS_TR1_UTILITY
       
   151 #  define BOOST_HAS_TR1_UNORDERED_MAP
       
   152 #  define BOOST_HAS_TR1_UNORDERED_SET
       
   153 #else
       
   154 #  define BOOST_HAS_TR1_HASH
       
   155 #endif
       
   156 #endif
       
   157 
       
   158 #include <boost/config.hpp>
       
   159 
       
   160 #endif
       
   161 
       
   162 
       
   163