os/ossrv/ossrv_pub/boost_apis/boost/config/compiler/gcc.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 - 2002. 
sl@0
     3
//  (C) Copyright Jens Maurer 2001 - 2002. 
sl@0
     4
//  (C) Copyright Beman Dawes 2001 - 2003. 
sl@0
     5
//  (C) Copyright Douglas Gregor 2002. 
sl@0
     6
//  (C) Copyright David Abrahams 2002 - 2003. 
sl@0
     7
//  (C) Copyright Synge Todo 2003. 
sl@0
     8
//  Use, modification and distribution are subject to the 
sl@0
     9
//  Boost Software License, Version 1.0. (See accompanying file 
sl@0
    10
//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
sl@0
    11
sl@0
    12
//  See http://www.boost.org for most recent version.
sl@0
    13
sl@0
    14
//  GNU C++ compiler setup:
sl@0
    15
sl@0
    16
#if __GNUC__ < 3
sl@0
    17
#   if __GNUC_MINOR__ == 91
sl@0
    18
       // egcs 1.1 won't parse shared_ptr.hpp without this:
sl@0
    19
#      define BOOST_NO_AUTO_PTR
sl@0
    20
#   endif
sl@0
    21
#   if __GNUC_MINOR__ < 95
sl@0
    22
      //
sl@0
    23
      // Prior to gcc 2.95 member templates only partly
sl@0
    24
      // work - define BOOST_MSVC6_MEMBER_TEMPLATES
sl@0
    25
      // instead since inline member templates mostly work.
sl@0
    26
      //
sl@0
    27
#     define BOOST_NO_MEMBER_TEMPLATES
sl@0
    28
#     if __GNUC_MINOR__ >= 9
sl@0
    29
#       define BOOST_MSVC6_MEMBER_TEMPLATES
sl@0
    30
#     endif
sl@0
    31
#   endif
sl@0
    32
sl@0
    33
#   if __GNUC_MINOR__ < 96
sl@0
    34
#     define BOOST_NO_SFINAE
sl@0
    35
#   endif
sl@0
    36
sl@0
    37
#   if __GNUC_MINOR__ <= 97
sl@0
    38
#     define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
sl@0
    39
#     define BOOST_NO_OPERATORS_IN_NAMESPACE
sl@0
    40
#   endif
sl@0
    41
sl@0
    42
#   define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
sl@0
    43
#   define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
sl@0
    44
#   define BOOST_NO_IS_ABSTRACT
sl@0
    45
#elif __GNUC__ == 3
sl@0
    46
   //
sl@0
    47
   // gcc-3.x problems:
sl@0
    48
   //
sl@0
    49
   // Bug specific to gcc 3.1 and 3.2:
sl@0
    50
   //
sl@0
    51
#  if ((__GNUC_MINOR__ == 1) || (__GNUC_MINOR__ == 2))
sl@0
    52
#     define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
sl@0
    53
#  endif
sl@0
    54
#  if __GNUC_MINOR__ < 4
sl@0
    55
#     define BOOST_NO_IS_ABSTRACT
sl@0
    56
#  endif
sl@0
    57
#endif
sl@0
    58
sl@0
    59
#ifndef __EXCEPTIONS
sl@0
    60
# define BOOST_NO_EXCEPTIONS
sl@0
    61
#endif
sl@0
    62
sl@0
    63
sl@0
    64
//
sl@0
    65
// Threading support: Turn this on unconditionally here (except for
sl@0
    66
// those platforms where we can know for sure). It will get turned off again
sl@0
    67
// later if no threading API is detected.
sl@0
    68
//
sl@0
    69
#if !defined(__MINGW32__) && !defined(linux) && !defined(__linux) && !defined(__linux__)
sl@0
    70
# define BOOST_HAS_THREADS
sl@0
    71
#endif 
sl@0
    72
sl@0
    73
//
sl@0
    74
// gcc has "long long"
sl@0
    75
//
sl@0
    76
#define BOOST_HAS_LONG_LONG
sl@0
    77
sl@0
    78
//
sl@0
    79
// gcc implements the named return value optimization since version 3.1
sl@0
    80
//
sl@0
    81
#if __GNUC__ > 3 || ( __GNUC__ == 3 && __GNUC_MINOR__ >= 1 )
sl@0
    82
#define BOOST_HAS_NRVO
sl@0
    83
#endif
sl@0
    84
sl@0
    85
#define BOOST_COMPILER "GNU C++ version " __VERSION__
sl@0
    86
sl@0
    87
//
sl@0
    88
// versions check:
sl@0
    89
// we don't know gcc prior to version 2.90:
sl@0
    90
#if (__GNUC__ == 2) && (__GNUC_MINOR__ < 90)
sl@0
    91
#  error "Compiler not configured - please reconfigure"
sl@0
    92
#endif
sl@0
    93
//
sl@0
    94
// last known and checked version is 4.0 (Pre-release):
sl@0
    95
#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 0))
sl@0
    96
#  if defined(BOOST_ASSERT_CONFIG)
sl@0
    97
#     error "Unknown compiler version - please run the configure tests and report the results"
sl@0
    98
#  else
sl@0
    99
// we don't emit warnings here anymore since there are no defect macros defined for
sl@0
   100
// gcc post 3.4, so any failures are gcc regressions...
sl@0
   101
//#     warning "Unknown compiler version - please run the configure tests and report the results"
sl@0
   102
#  endif
sl@0
   103
#endif
sl@0
   104
sl@0
   105