forked from boostorg/unordered
Anotehr overhaul. Can now use `void_pointer` for links between nodes, although it doesn't as I don't think `void_pointer` support is strong enough in existing allocators. Also no longer relies on using base pointers for custome pointer types. And scaled back member function detection to just detect if an allocator has a member, not what its signature is. I found that the trait could be confused by ambiguous overloads. This might be fixable. Better documentation of C++11 compliance to come. [SVN r74859]
54 lines
1.3 KiB
C++
54 lines
1.3 KiB
C++
|
|
// Copyright (C) 2008-2011 Daniel James.
|
|
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
|
|
#ifndef BOOST_UNORDERED_FWD_HPP_INCLUDED
|
|
#define BOOST_UNORDERED_FWD_HPP_INCLUDED
|
|
|
|
#if defined(_MSC_VER) && (_MSC_VER >= 1020)
|
|
# pragma once
|
|
#endif
|
|
|
|
#include <boost/config.hpp>
|
|
#include <memory>
|
|
#include <functional>
|
|
#include <boost/functional/hash_fwd.hpp>
|
|
|
|
namespace boost
|
|
{
|
|
namespace unordered
|
|
{
|
|
template <class K,
|
|
class T,
|
|
class H = boost::hash<K>,
|
|
class P = std::equal_to<K>,
|
|
class A = std::allocator<std::pair<const K, T> > >
|
|
class unordered_map;
|
|
|
|
template <class K,
|
|
class T,
|
|
class H = boost::hash<K>,
|
|
class P = std::equal_to<K>,
|
|
class A = std::allocator<std::pair<const K, T> > >
|
|
class unordered_multimap;
|
|
|
|
template <class T,
|
|
class H = boost::hash<T>,
|
|
class P = std::equal_to<T>,
|
|
class A = std::allocator<T> >
|
|
class unordered_set;
|
|
|
|
template <class T,
|
|
class H = boost::hash<T>,
|
|
class P = std::equal_to<T>,
|
|
class A = std::allocator<T> >
|
|
class unordered_multiset;
|
|
|
|
struct piecewise_construct_t {};
|
|
const piecewise_construct_t piecewise_construct = piecewise_construct_t();
|
|
}
|
|
}
|
|
|
|
#endif
|