PageRenderTime 97ms CodeModel.GetById 88ms app.highlight 6ms RepoModel.GetById 1ms app.codeStats 0ms

/Src/Dependencies/Boost/boost/interprocess/containers/container/container_fwd.hpp

http://hadesmem.googlecode.com/
C++ Header | 187 lines | 96 code | 45 blank | 46 comment | 1 complexity | dbc6b47f07004c1cb181177d3a503d6c MD5 | raw file
  1//////////////////////////////////////////////////////////////////////////////
  2//
  3// (C) Copyright Ion Gaztanaga 2005-2009. 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_CONTAINERS_CONTAINERS_FWD_HPP
 12#define BOOST_CONTAINERS_CONTAINERS_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 boost{ 
 25namespace intrusive{ 
 26   //Create namespace to avoid compilation errors
 27}}
 28
 29namespace boost{ namespace container{ namespace containers_detail{
 30
 31namespace bi = boost::intrusive;
 32
 33}}}
 34
 35namespace std {
 36
 37template <class T>
 38class allocator;
 39
 40template <class T>
 41struct less;
 42
 43template <class T1, class T2>
 44struct pair;
 45
 46template <class CharType> 
 47struct char_traits;
 48
 49}  //namespace std {
 50
 51/// @endcond
 52
 53//////////////////////////////////////////////////////////////////////////////
 54//                             Containers
 55//////////////////////////////////////////////////////////////////////////////
 56
 57namespace boost {
 58namespace container {
 59
 60//vector class
 61template <class T
 62         ,class A = std::allocator<T> >
 63class vector;
 64
 65//vector class
 66template <class T
 67         ,class A = std::allocator<T> >
 68class stable_vector;
 69
 70//vector class
 71template <class T
 72         ,class A = std::allocator<T> >
 73class deque;
 74
 75//list class
 76template <class T
 77         ,class A = std::allocator<T> >
 78class list;
 79
 80//slist class
 81template <class T
 82         ,class Alloc = std::allocator<T> >
 83class slist;
 84
 85//set class
 86template <class T
 87         ,class Pred  = std::less<T>
 88         ,class Alloc = std::allocator<T> >
 89class set;
 90
 91//multiset class
 92template <class T
 93         ,class Pred  = std::less<T>
 94         ,class Alloc = std::allocator<T> >
 95class multiset;
 96
 97//map class
 98template <class Key
 99         ,class T
100         ,class Pred  = std::less<Key>
101         ,class Alloc = std::allocator<std::pair<const Key, T> > >
102class map;
103
104//multimap class
105template <class Key
106         ,class T
107         ,class Pred  = std::less<Key>
108         ,class Alloc = std::allocator<std::pair<const Key, T> > >
109class multimap;
110
111//flat_set class
112template <class T
113         ,class Pred  = std::less<T>
114         ,class Alloc = std::allocator<T> >
115class flat_set;
116
117//flat_multiset class
118template <class T
119         ,class Pred  = std::less<T>
120         ,class Alloc = std::allocator<T> >
121class flat_multiset;
122
123//flat_map class
124template <class Key
125         ,class T
126         ,class Pred  = std::less<Key>
127         ,class Alloc = std::allocator<std::pair<Key, T> > >
128class flat_map;
129
130//flat_multimap class
131template <class Key
132         ,class T
133         ,class Pred  = std::less<Key>
134         ,class Alloc = std::allocator<std::pair<Key, T> > >
135class flat_multimap;
136
137//basic_string class
138template <class CharT
139         ,class Traits = std::char_traits<CharT>
140         ,class Alloc  = std::allocator<CharT> > 
141class basic_string;
142
143//! Type used to tag that the input range is
144//! guaranteed to be ordered
145struct ordered_range_impl_t {};
146
147//! Type used to tag that the input range is
148//! guaranteed to be ordered and unique
149struct ordered_unique_range_impl_t{};
150
151/// @cond
152
153typedef ordered_range_impl_t * ordered_range_t;
154typedef ordered_unique_range_impl_t *ordered_unique_range_t;
155
156/// @endcond
157
158//! Value used to tag that the input range is
159//! guaranteed to be ordered
160static const ordered_range_t ordered_range = 0;
161
162//! Value used to tag that the input range is
163//! guaranteed to be ordered and unique
164static const ordered_unique_range_t ordered_unique_range = 0;
165
166/// @cond
167
168namespace detail_really_deep_namespace {
169
170//Otherwise, gcc issues a warning of previously defined
171//anonymous_instance and unique_instance
172struct dummy
173{
174   dummy()
175   {
176      (void)ordered_range;
177      (void)ordered_unique_range;
178   }
179};
180
181}  //detail_really_deep_namespace {
182
183/// @endcond
184
185}}  //namespace boost { namespace container {
186
187#endif //#ifndef BOOST_CONTAINERS_CONTAINERS_FWD_HPP