Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: downloads/boost_1_34_1/boost/tr1/detail/config.hpp @ 56

Last change on this file since 56 was 29, checked in by landauf, 17 years ago

updated boost from 1_33_1 to 1_34_1

File size: 4.2 KB
Line 
1//  (C) Copyright John Maddock 2005.
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
7#ifndef BOOST_TR1_DETAIL_CONFIG_HPP_INCLUDED
8#  define BOOST_TR1_DETAIL_CONFIG_HPP_INCLUDED
9
10//
11// IMPORTANT: we must figure out the basics, such as how to
12// forward to the real std lib headers *without* including
13// boost/config.hpp or any of the std lib headers.  A classic
14// chicken and the egg problem....
15//
16// Including <cstddef> at least lets us detect STLport:
17//
18#include <cstddef>
19
20#  if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && !defined(__BORLANDC__)
21#     ifdef __SUNPRO_CC
22         // can't use <../stlport/name> since some compilers put stlport in a different directory:
23#        define BOOST_TR1_STD_HEADER(name) <../stlport4/name>
24#     else
25#        define BOOST_TR1_STD_HEADER(name) <../stlport/name>
26#     endif
27#  elif defined(__HP_aCC)
28#     define BOOST_TR1_STD_HEADER(name) <../include_std/name>
29#  elif defined(__DECCXX)
30#     define BOOST_TR1_STD_HEADER(name) <../cxx/name>
31#  elif defined(__BORLANDC__) && __BORLANDC__ >= 0x570
32#     define BOOST_TR1_STD_HEADER(name) <../include/dinkumware/name>
33#  else
34#     define BOOST_TR1_STD_HEADER(name) <../include/name>
35#  endif
36
37#if defined(__GNUC__) || (!defined(_AIX) && defined(__IBMCPP__)  && __IBMCPP__ >= 800)
38#  ifndef BOOST_HAS_INCLUDE_NEXT
39#     define BOOST_HAS_INCLUDE_NEXT
40#  endif
41#endif
42
43// Can't use BOOST_WORKAROUND here, it leads to recursive includes:
44#if (defined(__BORLANDC__) && (__BORLANDC__ <= 0x600)) || (defined(_MSC_VER) && (_MSC_VER < 1310))
45#  define BOOST_TR1_USE_OLD_TUPLE
46#endif
47
48//
49// We may be in the middle of parsing boost/config.hpp
50// when this header is included, so don't rely on config
51// stuff in the rest of this header...
52//
53// Find our actual std lib:
54//
55#ifdef BOOST_HAS_INCLUDE_NEXT
56#  ifndef BOOST_TR1_NO_RECURSION
57#     define BOOST_TR1_NO_RECURSION
58#     define BOOST_TR1_NO_CONFIG_RECURSION
59#  endif
60#  include_next <utility>
61#  if (__GNUC__ < 3)
62#     include_next <algorithm>
63#     include_next <iterator>
64#  endif
65#  ifdef BOOST_TR1_NO_CONFIG_RECURSION
66#     undef BOOST_TR1_NO_CONFIG_RECURSION
67#     undef BOOST_TR1_NO_RECURSION
68#  endif
69#else
70#  include BOOST_TR1_STD_HEADER(utility)
71#endif
72
73#if defined(__GLIBCXX__) && !defined(BOOST_TR1_PATH)
74#  define BOOST_TR1_PATH(name) tr1/name
75#endif
76#if !defined(BOOST_TR1_PATH)
77#  define BOOST_TR1_PATH(name) name
78#endif
79
80#define BOOST_TR1_HEADER(name) <BOOST_TR1_PATH(name)>
81
82#ifdef BOOST_HAS_TR1
83   // turn on support for everything:
84#  define BOOST_HAS_TR1_ARRAY
85#  define BOOST_HAS_TR1_COMPLEX_OVERLOADS
86#  define BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG
87#  define BOOST_HAS_TR1_REFERENCE_WRAPPER
88#  define BOOST_HAS_TR1_RESULT_OF
89#  define BOOST_HAS_TR1_MEM_FN
90#  define BOOST_HAS_TR1_BIND
91#  define BOOST_HAS_TR1_FUNCTION
92#  define BOOST_HAS_TR1_HASH
93#  define BOOST_HAS_TR1_SHARED_PTR
94#  define BOOST_HAS_TR1_RANDOM
95#  define BOOST_HAS_TR1_REGEX
96#  define BOOST_HAS_TR1_TUPLE
97#  define BOOST_HAS_TR1_TYPE_TRAITS
98#  define BOOST_HAS_TR1_UTILITY
99#  define BOOST_HAS_TR1_UNORDERED_MAP
100#  define BOOST_HAS_TR1_UNORDERED_SET
101
102#endif
103
104#if defined(__MWERKS__) && (__MWERKS__ >= 0x3205)
105//
106// Very preliminary MWCW support, may not be right:
107//
108#  define BOOST_HAS_TR1_SHARED_PTR
109#  define BOOST_HAS_TR1_REFERENCE_WRAPPER
110#  define BOOST_HAS_TR1_FUNCTION
111#  define BOOST_HAS_TR1_TUPLE
112#  define BOOST_HAS_TR1_RESULT_OF
113#endif
114
115#ifdef BOOST_HAS_GCC_TR1
116   // turn on support for everything in gcc 4.0.x:
117#  define BOOST_HAS_TR1_ARRAY
118//#  define BOOST_HAS_TR1_COMPLEX_OVERLOADS
119//#  define BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG
120#  define BOOST_HAS_TR1_REFERENCE_WRAPPER
121#  define BOOST_HAS_TR1_RESULT_OF
122#  define BOOST_HAS_TR1_MEM_FN
123#  define BOOST_HAS_TR1_BIND
124#  define BOOST_HAS_TR1_FUNCTION
125#  define BOOST_HAS_TR1_HASH
126#  define BOOST_HAS_TR1_SHARED_PTR
127//#  define BOOST_HAS_TR1_RANDOM
128//#  define BOOST_HAS_TR1_REGEX
129#  define BOOST_HAS_TR1_TUPLE
130#  define BOOST_HAS_TR1_TYPE_TRAITS
131#  define BOOST_HAS_TR1_UTILITY
132#  define BOOST_HAS_TR1_UNORDERED_MAP
133#  define BOOST_HAS_TR1_UNORDERED_SET
134
135#endif
136
137#include <boost/config.hpp>
138
139#endif
140
Note: See TracBrowser for help on using the repository browser.