]> git.lyx.org Git - lyx.git/blob - boost/boost/detail/container_fwd.hpp
boost: update to 1.47.0
[lyx.git] / boost / boost / detail / container_fwd.hpp
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 defined(BOOST_DETAIL_NO_CONTAINER_FWD) \
17     || ((defined(__GLIBCPP__) || defined(__GLIBCXX__)) \
18         && (defined(_GLIBCXX_DEBUG) || defined(_GLIBCXX_PARALLEL))) \
19     || BOOST_WORKAROUND(__BORLANDC__, > 0x551) \
20     || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x842)) \
21     || (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) \
22     || (defined(_LIBCPP_VERSION))
23
24 #include <deque>
25 #include <list>
26 #include <vector>
27 #include <map>
28 #include <set>
29 #include <bitset>
30 #include <string>
31 #include <complex>
32
33 #else
34
35 #include <cstddef>
36
37 #if !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION) && \
38         defined(__STL_CONFIG_H)
39
40 #define BOOST_CONTAINER_FWD_BAD_BITSET
41
42 #if !defined(__STL_NON_TYPE_TMPL_PARAM_BUG)
43 #define BOOST_CONTAINER_FWD_BAD_DEQUE
44 #endif
45
46 #endif
47
48 #if defined(BOOST_CONTAINER_FWD_BAD_DEQUE)
49 #include <deque>
50 #endif
51
52 #if defined(BOOST_CONTAINER_FWD_BAD_BITSET)
53 #include <bitset>
54 #endif
55
56 #if defined(BOOST_MSVC)
57 #pragma warning(push)
58 #pragma warning(disable:4099) // struct/class mismatch in fwd declarations
59 #endif
60
61 namespace std
62 {
63     template <class T> class allocator;
64     template <class charT, class traits, class Allocator> class basic_string;
65
66 #if BOOST_WORKAROUND(__GNUC__, < 3) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
67     template <class charT> struct string_char_traits;
68 #else
69     template <class charT> struct char_traits;
70 #endif
71
72     #if BOOST_CLANG
73         template <class T> struct complex;
74     #else
75         template <class T> class complex;
76     #endif
77 }
78
79 // gcc 3.4 and greater
80 namespace std
81 {
82 #if !defined(BOOST_CONTAINER_FWD_BAD_DEQUE)
83     template <class T, class Allocator> class deque;
84 #endif
85
86     template <class T, class Allocator> class list;
87     template <class T, class Allocator> class vector;
88     template <class Key, class T, class Compare, class Allocator> class map;
89     template <class Key, class T, class Compare, class Allocator>
90     class multimap;
91     template <class Key, class Compare, class Allocator> class set;
92     template <class Key, class Compare, class Allocator> class multiset;
93
94 #if !defined(BOOST_CONTAINER_FWD_BAD_BITSET)
95     template <size_t N> class bitset;
96 #endif
97     template <class T1, class T2> struct pair;
98 }
99
100 #if defined(BOOST_MSVC)
101 #pragma warning(pop)
102 #endif
103
104 #endif
105
106 #endif