standard_policies.hpp revision 169691
1186201Ssam// -*- C++ -*-
2186201Ssam
3186201Ssam// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
4186201Ssam//
5186201Ssam// This file is part of the GNU ISO C++ Library.  This library is free
6186201Ssam// software; you can redistribute it and/or modify it under the terms
7186201Ssam// of the GNU General Public License as published by the Free Software
8186201Ssam// Foundation; either version 2, or (at your option) any later
9186201Ssam// version.
10186201Ssam
11186201Ssam// This library is distributed in the hope that it will be useful, but
12186201Ssam// WITHOUT ANY WARRANTY; without even the implied warranty of
13186201Ssam// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14186201Ssam// General Public License for more details.
15186201Ssam
16186201Ssam// You should have received a copy of the GNU General Public License
17186201Ssam// along with this library; see the file COPYING.  If not, write to
18186201Ssam// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
19186201Ssam// MA 02111-1307, USA.
20186201Ssam
21186201Ssam// As a special exception, you may use this file as part of a free
22186201Ssam// software library without restriction.  Specifically, if other files
23186201Ssam// instantiate templates or use macros or inline functions from this
24186201Ssam// file, or you compile this file and link it with other files to
25186201Ssam// produce an executable, this file does not by itself cause the
26186201Ssam// resulting executable to be covered by the GNU General Public
27186201Ssam// License.  This exception does not however invalidate any other
28186201Ssam// reasons why the executable file might be covered by the GNU General
29186201Ssam// Public License.
30189652Ssam
31189652Ssam// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
32189652Ssam
33189652Ssam// Permission to use, copy, modify, sell, and distribute this software
34186201Ssam// is hereby granted without fee, provided that the above copyright
35186201Ssam// notice appears in all copies, and that both that copyright notice
36186201Ssam// and this permission notice appear in supporting documentation. None
37186201Ssam// of the above authors, nor IBM Haifa Research Laboratories, make any
38186201Ssam// representation about the suitability of this software for any
39186201Ssam// purpose. It is provided "as is" without express or implied
40186201Ssam// warranty.
41186201Ssam
42186201Ssam/**
43186201Ssam * @file standard_policies.hpp
44186201Ssam * Contains standard policies for gp_ht_map types.
45186201Ssam */
46186201Ssam
47186201Ssam#ifndef PB_DS_GP_HT_MAP_STANDARD_POLICIES_HPP
48186201Ssam#define PB_DS_GP_HT_MAP_STANDARD_POLICIES_HPP
49191369Sstas
50191369Sstas#include <ext/pb_ds/detail/standard_policies.hpp>
51186201Ssam#include <ext/pb_ds/ht_load_check_resize_trigger.hpp>
52186201Ssam#include <ext/pb_ds/linear_probe_fn.hpp>
53186201Ssam#include <ext/pb_ds/quadratic_probe_fn.hpp>
54186201Ssam
55186201Ssamnamespace pb_ds
56186201Ssam{
57186201Ssam  namespace detail
58186201Ssam  {
59    template<typename Comb_Probe_Fn>
60    struct default_probe_fn
61    {
62    private:
63      typedef typename Comb_Probe_Fn::size_type size_type;
64
65    public:
66      typedef
67      typename __conditional_type<
68      is_same<
69      pb_ds::direct_mask_range_hashing<size_t>,
70      Comb_Probe_Fn>::value,
71      pb_ds::linear_probe_fn<size_type>,
72      pb_ds::quadratic_probe_fn<size_type> >::__type
73      type;
74    };
75
76  } // namespace detail
77} // namespace pb_ds
78
79#endif
80
81