]> git.donarmstrong.com Git - rsem.git/blob - boost/container/container_fwd.hpp
Updated boost to v1.55.0
[rsem.git] / boost / container / container_fwd.hpp
1 //////////////////////////////////////////////////////////////////////////////
2 //
3 // (C) Copyright Ion Gaztanaga 2005-2012. Distributed under the Boost
4 // Software License, Version 1.0. (See accompanying file
5 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 //
7 // See http://www.boost.org/libs/container for documentation.
8 //
9 //////////////////////////////////////////////////////////////////////////////
10
11 #ifndef BOOST_CONTAINER_CONTAINER_FWD_HPP
12 #define BOOST_CONTAINER_CONTAINER_FWD_HPP
13
14 #if defined(_MSC_VER)
15 #  pragma once
16 #endif
17
18 //////////////////////////////////////////////////////////////////////////////
19 //                        Standard predeclarations
20 //////////////////////////////////////////////////////////////////////////////
21
22 /// @cond
23
24 namespace boost{
25 namespace intrusive{
26    //Create namespace to avoid compilation errors
27 }}
28
29 namespace boost{ namespace container{ namespace container_detail{
30
31 namespace bi = boost::intrusive;
32
33 }}}
34
35 #include <utility>
36 #include <memory>
37 #include <functional>
38 #include <iosfwd>
39 #include <string>
40
41 /// @endcond
42
43 //////////////////////////////////////////////////////////////////////////////
44 //                             Containers
45 //////////////////////////////////////////////////////////////////////////////
46
47 namespace boost {
48 namespace container {
49
50 //vector class
51 template <class T
52          ,class Allocator = std::allocator<T> >
53 class vector;
54
55 //vector class
56 template <class T
57          ,class Allocator = std::allocator<T> >
58 class stable_vector;
59
60 //vector class
61 template <class T
62          ,class Allocator = std::allocator<T> >
63 class deque;
64
65 //list class
66 template <class T
67          ,class Allocator = std::allocator<T> >
68 class list;
69
70 //slist class
71 template <class T
72          ,class Allocator = std::allocator<T> >
73 class slist;
74
75 //set class
76 template <class Key
77          ,class Compare  = std::less<Key>
78          ,class Allocator = std::allocator<Key> >
79 class set;
80
81 //multiset class
82 template <class Key
83          ,class Compare  = std::less<Key>
84          ,class Allocator = std::allocator<Key> >
85 class multiset;
86
87 //map class
88 template <class Key
89          ,class T
90          ,class Compare  = std::less<Key>
91          ,class Allocator = std::allocator<std::pair<const Key, T> > >
92 class map;
93
94 //multimap class
95 template <class Key
96          ,class T
97          ,class Compare  = std::less<Key>
98          ,class Allocator = std::allocator<std::pair<const Key, T> > >
99 class multimap;
100
101 //flat_set class
102 template <class Key
103          ,class Compare  = std::less<Key>
104          ,class Allocator = std::allocator<Key> >
105 class flat_set;
106
107 //flat_multiset class
108 template <class Key
109          ,class Compare  = std::less<Key>
110          ,class Allocator = std::allocator<Key> >
111 class flat_multiset;
112
113 //flat_map class
114 template <class Key
115          ,class T
116          ,class Compare  = std::less<Key>
117          ,class Allocator = std::allocator<std::pair<Key, T> > >
118 class flat_map;
119
120 //flat_multimap class
121 template <class Key
122          ,class T
123          ,class Compare  = std::less<Key>
124          ,class Allocator = std::allocator<std::pair<Key, T> > >
125 class flat_multimap;
126
127 //basic_string class
128 template <class CharT
129          ,class Traits = std::char_traits<CharT>
130          ,class Allocator  = std::allocator<CharT> >
131 class basic_string;
132
133 //! Type used to tag that the input range is
134 //! guaranteed to be ordered
135 struct ordered_range_t
136 {};
137
138 //! Value used to tag that the input range is
139 //! guaranteed to be ordered
140 static const ordered_range_t ordered_range = ordered_range_t();
141
142 //! Type used to tag that the input range is
143 //! guaranteed to be ordered and unique
144 struct ordered_unique_range_t
145    : public ordered_range_t
146 {};
147
148 //! Value used to tag that the input range is
149 //! guaranteed to be ordered and unique
150 static const ordered_unique_range_t ordered_unique_range = ordered_unique_range_t();
151
152 //! Type used to tag that the input range is
153 //! guaranteed to be ordered and unique
154 struct default_init_t
155 {};
156
157 //! Value used to tag that the input range is
158 //! guaranteed to be ordered and unique
159 static const default_init_t default_init = default_init_t();
160 /// @cond
161
162 namespace detail_really_deep_namespace {
163
164 //Otherwise, gcc issues a warning of previously defined
165 //anonymous_instance and unique_instance
166 struct dummy
167 {
168    dummy()
169    {
170       (void)ordered_range;
171       (void)ordered_unique_range;
172       (void)default_init;
173    }
174 };
175
176 }  //detail_really_deep_namespace {
177
178 /// @endcond
179
180 }}  //namespace boost { namespace container {
181
182 #endif //#ifndef BOOST_CONTAINER_CONTAINER_FWD_HPP