blob: 7dda7bd7bfb09a2cadc8890dc152f714449abd1e [file] [log] [blame]
Jeff Thompsonef2d5a42013-08-22 19:09:24 -07001//////////////////////////////////////////////////////////////////////////////
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) && (_MSC_VER >= 1200)
15# pragma once
16#endif
17
18//////////////////////////////////////////////////////////////////////////////
19// Standard predeclarations
20//////////////////////////////////////////////////////////////////////////////
21
22/// @cond
23
24namespace ndnboost{
25namespace intrusive{
26 //Create namespace to avoid compilation errors
27}}
28
29namespace ndnboost{ namespace container{ namespace container_detail{
30
31namespace bi = ndnboost::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
47namespace ndnboost {
48namespace container {
49
50//vector class
51template <class T
52 ,class Allocator = std::allocator<T> >
53class vector;
54
55//vector class
56template <class T
57 ,class Allocator = std::allocator<T> >
58class stable_vector;
59
60//vector class
61template <class T
62 ,class Allocator = std::allocator<T> >
63class deque;
64
65//list class
66template <class T
67 ,class Allocator = std::allocator<T> >
68class list;
69
70//slist class
71template <class T
72 ,class Allocator = std::allocator<T> >
73class slist;
74
75//set class
76template <class Key
77 ,class Compare = std::less<Key>
78 ,class Allocator = std::allocator<Key> >
79class set;
80
81//multiset class
82template <class Key
83 ,class Compare = std::less<Key>
84 ,class Allocator = std::allocator<Key> >
85class multiset;
86
87//map class
88template <class Key
89 ,class T
90 ,class Compare = std::less<Key>
91 ,class Allocator = std::allocator<std::pair<const Key, T> > >
92class map;
93
94//multimap class
95template <class Key
96 ,class T
97 ,class Compare = std::less<Key>
98 ,class Allocator = std::allocator<std::pair<const Key, T> > >
99class multimap;
100
101//flat_set class
102template <class Key
103 ,class Compare = std::less<Key>
104 ,class Allocator = std::allocator<Key> >
105class flat_set;
106
107//flat_multiset class
108template <class Key
109 ,class Compare = std::less<Key>
110 ,class Allocator = std::allocator<Key> >
111class flat_multiset;
112
113//flat_map class
114template <class Key
115 ,class T
116 ,class Compare = std::less<Key>
117 ,class Allocator = std::allocator<std::pair<Key, T> > >
118class flat_map;
119
120//flat_multimap class
121template <class Key
122 ,class T
123 ,class Compare = std::less<Key>
124 ,class Allocator = std::allocator<std::pair<Key, T> > >
125class flat_multimap;
126
127//basic_string class
128template <class CharT
129 ,class Traits = std::char_traits<CharT>
130 ,class Allocator = std::allocator<CharT> >
131class basic_string;
132
133//! Type used to tag that the input range is
134//! guaranteed to be ordered
135struct ordered_range_t
136{};
137
138//! Type used to tag that the input range is
139//! guaranteed to be ordered and unique
140struct ordered_unique_range_t
141 : public ordered_range_t
142{};
143
144//! Value used to tag that the input range is
145//! guaranteed to be ordered
146static const ordered_range_t ordered_range = ordered_range_t();
147
148//! Value used to tag that the input range is
149//! guaranteed to be ordered and unique
150static const ordered_unique_range_t ordered_unique_range = ordered_unique_range_t();
151
152/// @cond
153
154namespace detail_really_deep_namespace {
155
156//Otherwise, gcc issues a warning of previously defined
157//anonymous_instance and unique_instance
158struct dummy
159{
160 dummy()
161 {
162 (void)ordered_range;
163 (void)ordered_unique_range;
164 }
165};
166
167} //detail_really_deep_namespace {
168
169/// @endcond
170
171}} //namespace ndnboost { namespace container {
172
173#endif //#ifndef BOOST_CONTAINER_CONTAINER_FWD_HPP