-/*] Copyright (c) 2009-2010, Charles McGarvey [**************************
+/*] Copyright (c) 2009-2011, Charles McGarvey [*****************************
**] All rights reserved.
*
-* vi:ts=4 sw=4 tw=75
-*
* Distributable under the terms and conditions of the 2-clause BSD license;
* see the file COPYING for a complete text of the license.
*
-**************************************************************************/
+*****************************************************************************/
#ifndef _MOOF_HASH_HH_
#define _MOOF_HASH_HH_
+#include <string>
+
+#include <stlplus/containers/hash.hpp>
+
+
/**
* \file hash.hh
* Hash tables and functions.
*/
-#include <string>
-
-#include <moof/stlplus/hash.hpp>
-
-
namespace moof {
using stlplus::hash;
-
struct hash_function
{
// generic hash function
- unsigned operator () (const void* key, int len,
- unsigned seed = -1) const;
+ unsigned operator () (const void* key, int len, unsigned seed = -1) const;
unsigned operator () (const std::string& val) const
{
return (*this)(val.data(), val.length());
}
- unsigned operator () (int val) const
+ template <class T>
+ unsigned operator () (T val) const
{
- return val;
+ return static_cast<unsigned>(val);
}
};