From 2f56f0caa2a222050d81ce54b3c2f61adb2ea7d4 Mon Sep 17 00:00:00 2001 From: lisyarus Date: Thu, 4 Mar 2021 14:29:09 +0300 Subject: [PATCH] Add hash for geom::vector --- libs/geom/include/psemek/geom/vector.hpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/libs/geom/include/psemek/geom/vector.hpp b/libs/geom/include/psemek/geom/vector.hpp index 77a46fce..bb20a72b 100644 --- a/libs/geom/include/psemek/geom/vector.hpp +++ b/libs/geom/include/psemek/geom/vector.hpp @@ -1,6 +1,7 @@ #pragma once #include +#include #include #include @@ -358,3 +359,21 @@ namespace psemek::geom } } + +namespace std +{ + + template + struct hash<::psemek::geom::vector> + { + std::size_t operator()(::psemek::geom::vector const & v) const noexcept + { + std::hash h; + std::size_t r = 0; + for (std::size_t i = 0; i < N; ++i) + ::psemek::util::hash_combine(r, h(v[i])); + return r; + } + }; + +}