|
1 |
|
2 // Copyright 2005-2008 Daniel James. |
|
3 // Distributed under the Boost Software License, Version 1.0. (See accompanying |
|
4 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) |
|
5 |
|
6 #if !defined(BOOST_DETAIL_CONTAINER_FWD_HPP) |
|
7 #define BOOST_DETAIL_CONTAINER_FWD_HPP |
|
8 |
|
9 #if defined(_MSC_VER) && (_MSC_VER >= 1020) |
|
10 # pragma once |
|
11 #endif |
|
12 |
|
13 #include <boost/config.hpp> |
|
14 #include <boost/detail/workaround.hpp> |
|
15 |
|
16 #if BOOST_WORKAROUND(__GNUC__, < 3) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION) |
|
17 #define BOOST_HASH_CHAR_TRAITS string_char_traits |
|
18 #else |
|
19 #define BOOST_HASH_CHAR_TRAITS char_traits |
|
20 #endif |
|
21 |
|
22 #if ((defined(__GLIBCPP__) || defined(__GLIBCXX__)) && defined(_GLIBCXX_DEBUG)) \ |
|
23 || BOOST_WORKAROUND(__BORLANDC__, > 0x551) \ |
|
24 || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x842)) \ |
|
25 || (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) |
|
26 |
|
27 #include <deque> |
|
28 #include <list> |
|
29 #include <vector> |
|
30 #include <map> |
|
31 #include <set> |
|
32 #include <bitset> |
|
33 #include <string> |
|
34 #include <complex> |
|
35 |
|
36 #else |
|
37 |
|
38 #include <cstddef> |
|
39 |
|
40 #if !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION) && \ |
|
41 defined(__STL_CONFIG_H) |
|
42 |
|
43 #define BOOST_CONTAINER_FWD_BAD_BITSET |
|
44 |
|
45 #if !defined(__STL_NON_TYPE_TMPL_PARAM_BUG) |
|
46 #define BOOST_CONTAINER_FWD_BAD_DEQUE |
|
47 #endif |
|
48 |
|
49 #endif |
|
50 |
|
51 #if defined(BOOST_CONTAINER_FWD_BAD_DEQUE) |
|
52 #include <deque> |
|
53 #endif |
|
54 |
|
55 #if defined(BOOST_CONTAINER_FWD_BAD_BITSET) |
|
56 #include <bitset> |
|
57 #endif |
|
58 |
|
59 #if defined(BOOST_MSVC) |
|
60 #pragma warning(push) |
|
61 #pragma warning(disable:4099) // struct/class mismatch in fwd declarations |
|
62 #endif |
|
63 |
|
64 namespace std |
|
65 { |
|
66 template <class T> class allocator; |
|
67 template <class charT, class traits, class Allocator> class basic_string; |
|
68 template <class charT> struct BOOST_HASH_CHAR_TRAITS; |
|
69 template <class T> class complex; |
|
70 } |
|
71 |
|
72 // gcc 3.4 and greater |
|
73 namespace std |
|
74 { |
|
75 #if !defined(BOOST_CONTAINER_FWD_BAD_DEQUE) |
|
76 template <class T, class Allocator> class deque; |
|
77 #endif |
|
78 |
|
79 template <class T, class Allocator> class list; |
|
80 template <class T, class Allocator> class vector; |
|
81 template <class Key, class T, class Compare, class Allocator> class map; |
|
82 template <class Key, class T, class Compare, class Allocator> |
|
83 class multimap; |
|
84 template <class Key, class Compare, class Allocator> class set; |
|
85 template <class Key, class Compare, class Allocator> class multiset; |
|
86 |
|
87 #if !defined(BOOST_CONTAINER_FWD_BAD_BITSET) |
|
88 template <size_t N> class bitset; |
|
89 #endif |
|
90 template <class T1, class T2> struct pair; |
|
91 } |
|
92 |
|
93 #if defined(BOOST_MSVC) |
|
94 #pragma warning(pop) |
|
95 #endif |
|
96 |
|
97 #endif |
|
98 |
|
99 #endif |