diff options
Diffstat (limited to 'src/lib/netlist/plib/putil.h')
-rw-r--r-- | src/lib/netlist/plib/putil.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/lib/netlist/plib/putil.h b/src/lib/netlist/plib/putil.h index 3ddf4a81f5a..cc2b000b10d 100644 --- a/src/lib/netlist/plib/putil.h +++ b/src/lib/netlist/plib/putil.h @@ -287,6 +287,19 @@ namespace plib const std::string &token, std::size_t maxsplit); + // ---------------------------------------------------------------------------------------- + // simple hash + // ---------------------------------------------------------------------------------------- + + template <typename T> + std::size_t hash(const T *buf, std::size_t size) + { + std::size_t result = 5381; + for (const T* p = buf; p != buf + size; p++) + result = ((result << 5) + result ) ^ (result >> (32 - 5)) ^ static_cast<std::size_t>(*p); + return result; + } + //============================================================ // penum - strongly typed enumeration //============================================================ |