18 lines
340 B
C++
18 lines
340 B
C++
#pragma once
|
|
|
|
#include <array>
|
|
#include <memory>
|
|
|
|
template<class T, size_t N>
|
|
struct std::hash<std::array<T, N>>
|
|
{
|
|
auto operator() (const std::array<T, N>& key) const {
|
|
auto hasher = std::hash<T>{};
|
|
auto result = std::size_t{};
|
|
for (const auto& element : key)
|
|
{
|
|
result = result * 31 + hasher(element);
|
|
}
|
|
return result;
|
|
}
|
|
}; |