| Home | Libraries | People | FAQ | More

### Reference

For the full specification, see section 6.3 of the C++ Standard Library Technical Report and issue 6.18 of the Library Extension Technical Report Issues List.

###### Header <boost/functional/hash.hpp>

Includes all the following headers.

###### Header <boost/functional/hash/hash.hpp>

Defines `boost::hash`, the implementation for built in types and `std::string` and customisation functions.

    namespace boost {
      template<typename T> struct hash;
      template<typename T> void hash_combine(size_t &, T const &);
      template<typename It> std::size_t hash_range(It, It);
      template<typename It> void hash_range(std::size_t&, It, It);
      std::size_t hash_value(int);
      std::size_t hash_value(unsigned int);
      std::size_t hash_value(long);
      std::size_t hash_value(unsigned long);
      std::size_t hash_value(float);
      std::size_t hash_value(double);
      std::size_t hash_value(long double);
      template<typename T> std::size_t hash_value(T* const&);
      template<typename T, unsigned N> std::size_t hash_value(T (&val)[N]);
      template<typename T, unsigned N> std::size_t hash_value(const T (&val)[N]);
      template<typename Ch, typename A>
        std::size_t hash_value(std::basic_string<Ch, std::char_traits<Ch>, A> const&);
    }

###### Header <boost/functional/hash/pair.hpp>

Hash implementation for `std::pair`.

    namespace boost {
      template<typename A, typename B>
        std::size_t hash_value(std::pair<A, B> const &);
    }

###### Header <boost/functional/hash/vector.hpp>

Hash implementation for `std::vector`.

    namespace boost {
      template<typename T, typename A>
        std::size_t hash_value(std::vector<T, A> const &);
    }

###### Header <boost/functional/hash/list.hpp>

Hash implementation for `std::list`.

    namespace boost {
      template<typename T, typename A>
        std::size_t hash_value(std::list<T, A> const &);
    }

###### Header <boost/functional/hash/deque.hpp>

Hash implementation for `std::deque`.

    namespace boost {
      template<typename T, typename A>
        std::size_t hash_value(std::deque<T, A> const &);
    }

###### Header <boost/functional/hash/set.hpp>

Hash implementation for `std::set` and `std::multiset`.

    namespace boost {
      template<typename K, typename C, typename A>
        std::size_t hash_value(std::set<K, C, A> const &);
      template<typename K, typename C, typename A>
        std::size_t hash_value(std::multiset<K, C, A> const &);
    }

###### Header <boost/functional/hash/map.hpp>

Hash implementation for `std::map` and `std::multimap`.

    namespace boost {
      template<typename K, typename T, typename C, typename A>
        std::size_t hash_value(std::map<K, T, C, A> const &);
      template<typename K, typename T, typename C, typename A>
        std::size_t hash_value(std::multimap<K, T, C, A> const &);
    }

| Copyright © 2005 Daniel James