-/*] 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_
-/**
- * \file hash.hh
- * Hash tables and functions.
- */
-
#include <string>
#include <stlplus/containers/hash.hpp>
+/**
+ * \file hash.hh
+ * Hash tables and functions.
+ */
+
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);
}
};