From eb1e3670855f9e18df3b86ceec37468361d2c5d3 Mon Sep 17 00:00:00 2001 From: lisyarus Date: Mon, 4 Jul 2022 18:22:42 +0300 Subject: [PATCH] Implement spaceship operator for geom::vector --- libs/geom/include/psemek/geom/vector.hpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/libs/geom/include/psemek/geom/vector.hpp b/libs/geom/include/psemek/geom/vector.hpp index d9a5daac..ddd56b8f 100644 --- a/libs/geom/include/psemek/geom/vector.hpp +++ b/libs/geom/include/psemek/geom/vector.hpp @@ -9,6 +9,7 @@ #include #include #include +#include namespace psemek::geom { @@ -97,6 +98,19 @@ namespace psemek::geom return !(v1 < v2); } + template + std::strong_ordering operator <=> (vector const & v1, vector const & v2) + { + for (std::size_t i = 0; i < N; ++i) + { + if (v1[i] < v2[i]) + return std::strong_ordering::less; + if (v1[i] > v2[i]) + return std::strong_ordering::greater; + } + return std::strong_ordering::equal; + } + template vector cast(vector const & v) {