/cvmfs/atlas.cern.ch/repo/sw/ASG/AnalysisBase/2.4.29/CxxUtils/CxxUtils/hashtable.h File Reference

This is the TR1 hashtable implementation from gcc4, adapted to build in Atlas. Once the TR1 library is available on all our platforms, we can switch to using the system-supplied version instead. More...

#include <algorithm>
#include <utility>
#include <iterator>
#include <cstddef>
#include <cstdlib>
#include <cmath>
#include <limits>
#include <string>
#include "boost/type_traits/remove_const.hpp"

Go to the source code of this file.

Classes

struct  CxxUtils_Internal::integral_constant< _Tp, __v >
struct  SG::hash< T * >
struct  SG::Fnv_hash< size_t >
struct  SG::Fnv_hash< 4 >
struct  SG::Fnv_hash< 8 >
struct  SG::hash< std::string >
struct  SG::hash< float >
struct  SG::hash< double >
struct  SG::hash< long double >
struct  CxxUtils_Internal::IF< true, IfTrue, IfFalse >
struct  CxxUtils_Internal::IF< false, IfTrue, IfFalse >
struct  CxxUtils_Internal::hash_node< Value, true >
struct  CxxUtils_Internal::hash_node< Value, false >
struct  CxxUtils_Internal::node_iterator_base< Value, cache >
struct  CxxUtils_Internal::node_iterator< Value, constant_iterators, cache >
struct  CxxUtils_Internal::node_const_iterator< Value, constant_iterators, cache >
struct  CxxUtils_Internal::hashtable_iterator_base< Value, cache >
struct  CxxUtils_Internal::hashtable_iterator< Value, constant_iterators, cache >
struct  CxxUtils_Internal::hashtable_const_iterator< Value, constant_iterators, cache >
struct  CxxUtils_Internal::identity< T >
struct  CxxUtils_Internal::extract1st< Pair >
struct  CxxUtils_Internal::mod_range_hashing
struct  CxxUtils_Internal::default_ranged_hash
struct  CxxUtils_Internal::prime_rehash_policy
struct  CxxUtils_Internal::lt
struct  CxxUtils_Internal::X
struct  CxxUtils_Internal::map_base< K, V, Ex, unique, Hashtable >
struct  CxxUtils_Internal::map_base< K, Pair, extract1st< Pair >, false, Hashtable >
struct  CxxUtils_Internal::map_base< K, Pair, extract1st< Pair >, true, Hashtable >
struct  CxxUtils_Internal::rehash_base< RehashPolicy, Hashtable >
struct  CxxUtils_Internal::rehash_base< prime_rehash_policy, Hashtable >
struct  CxxUtils_Internal::hash_code_base< Key, Value, ExtractKey, Equal, H1, H2, H, false >
struct  CxxUtils_Internal::hash_code_base< Key, Value, ExtractKey, Equal, H1, H2, default_ranged_hash, false >
struct  CxxUtils_Internal::hash_code_base< Key, Value, ExtractKey, Equal, H1, H2, default_ranged_hash, true >
class  SG::hashtable< Key, Value, Allocator, ExtractKey, Equal, H1, H2, H, RehashPolicy, cache_hash_code, constant_iterators, unique_keys >

Namespaces

namespace  SG
 

Constructor from a payload object.


Defines

#define CXXUTILS_HASHTABLE_H
#define tr1_hashtable_define_trivial_hash(T)
#define Internal   CxxUtils_Internal

Typedefs

typedef integral_constant
< bool, true > 
CxxUtils_Internal::true_type
typedef integral_constant
< bool, false > 
CxxUtils_Internal::false_type

Functions

 SG::tr1_hashtable_define_trivial_hash (bool)
 SG::tr1_hashtable_define_trivial_hash (char)
 SG::tr1_hashtable_define_trivial_hash (signed char)
 SG::tr1_hashtable_define_trivial_hash (unsigned char)
 SG::tr1_hashtable_define_trivial_hash (wchar_t)
 SG::tr1_hashtable_define_trivial_hash (short)
 SG::tr1_hashtable_define_trivial_hash (int)
 SG::tr1_hashtable_define_trivial_hash (long)
template<class Iterator >
std::iterator_traits< Iterator >
::difference_type 
CxxUtils_Internal::distance_fw (Iterator, Iterator, std::input_iterator_tag)
template<class Iterator >
std::iterator_traits< Iterator >
::difference_type 
CxxUtils_Internal::distance_fw (Iterator first, Iterator last, std::forward_iterator_tag)
template<class Iterator >
std::iterator_traits< Iterator >
::difference_type 
CxxUtils_Internal::distance_fw (Iterator first, Iterator last)
template<typename Value , bool cache>
bool CxxUtils_Internal::operator== (const node_iterator_base< Value, cache > &x, const node_iterator_base< Value, cache > &y)
template<typename Value , bool cache>
bool CxxUtils_Internal::operator!= (const node_iterator_base< Value, cache > &x, const node_iterator_base< Value, cache > &y)
template<typename Value , bool cache>
bool CxxUtils_Internal::operator== (const hashtable_iterator_base< Value, cache > &x, const hashtable_iterator_base< Value, cache > &y)
template<typename Value , bool cache>
bool CxxUtils_Internal::operator!= (const hashtable_iterator_base< Value, cache > &x, const hashtable_iterator_base< Value, cache > &y)

Detailed Description

This is the TR1 hashtable implementation from gcc4, adapted to build in Atlas. Once the TR1 library is available on all our platforms, we can switch to using the system-supplied version instead.

Author:
scott snyder <snyder@bnl.gov>, copied from gcc4.
Date:
Apr, 2007 Search for `sss' to find changes from the gcc version.

Define Documentation

#define tr1_hashtable_define_trivial_hash ( T   ) 
Value:
template<>                                            \
    struct hash<T>                                      \
    : public std::unary_function<T, std::size_t>        \
    {                                                   \
      std::size_t                                       \
      operator()(T val) const                           \
      { return static_cast<std::size_t>(val); }         \
    }
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 15 Apr 2017 for RootCore Packages by  doxygen 1.6.1