8 #ifndef IMPKERNEL_HASH_H
9 #define IMPKERNEL_HASH_H
11 #include <IMP/kernel_config.h>
14 IMP_CLANG_PRAGMA(diagnostic push)
15 IMP_CLANG_PRAGMA(diagnostic ignored
"-Wmismatched-tags")
17 #include <boost/functional/hash.hpp>
18 #include <boost/functional/hash/hash.hpp>
20 IMP_CLANG_PRAGMA(diagnostic pop)
29 #include <boost/graph/adjacency_list.hpp>
34 IMPKERNEL_BEGIN_NAMESPACE
36 inline std::size_t hash_value(
const T &t) {
39 inline std::size_t hash_value(
double d) {
return boost::hash_value(d); }
40 inline std::size_t hash_value(
int d) {
return boost::hash_value(d); }
41 inline std::size_t hash_value(
bool d) {
return boost::hash_value(d); }
42 inline std::size_t hash_value(
const std::string &d) {
43 return boost::hash_value(d);
48 inline std::size_t hash_value(
const std::vector<T> &t) {
49 return boost::hash_range(t.begin(), t.end());
51 IMPKERNEL_END_NAMESPACE